TIL: Python 학습 내용 https://datalearn.tistory.com/40
오늘 학습한 내용: 숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분 문자열 중에서, 이 부분 문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하는 방법.
문제 예시:
- t = "3141592"
- p = "271"
- 부분 문자열: 314, 141, 415, 159, 592
- 271보다 작거나 같은 수: 141, 159 (2개)
문제 풀이 순서:
- p의 길이와 정수 값을 구하기
- 조건을 충족할 때 카운트한 값을 저장할 변수 작성하기
- 조건을 만족할 때까지 반복할 반복문 작성하기
- 조건 달성 여부를 판단할 조건문 작성하기
- 조건 달성할 때마다 카운트 횟수를 더하기
- 결과 출력하기
구체적 구현:
def solution(t, p):
len_p = len(p)
p_num = int(p)
answer = 0
for i in range(len(t) - len_p + 1):
if int(t[i:i + len_p]) <= p_num:
answer += 1
return answer
오늘 배운 점:
- 문제를 단계별로 해결하는 방법을 배웠다.
- 한 번에 정답을 유추하기보다는 단계적으로 접근하는 것이 효과적임을 깨달았다.
TIL: SQL 학습 내용 https://datalearn.tistory.com/41
오늘 학습한 내용: USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 완료된 중고 거래의 총 금액이 70만원 이상인 사람의 회원 ID, 닉네임, 총 거래금액을 조회하는 SQL문 작성.
문제 풀이 순서:
- 두 테이블을 서로 묶기
- 완료된 거래만 조회하기
- 유저 ID, 닉네임, 금액을 SELECT 문에 작성하기
- 유저별로 거래한 총 금액을 계산하기
- 총 거래 금액이 70만 이상인 데이터만 추려내기
- 총 금액을 기준으로 오름차순 정렬하기
구체적 구현:
SELECT USER_ID, NICKNAME, SUM(PRICE) AS TOTAL_SALES
FROM USED_GOODS_BOARD
INNER JOIN USED_GOODS_USER
ON WRITER_ID = USER_ID WHERE STATUS = 'DONE'
GROUP BY USER_ID
HAVING TOTAL_SALES >= 700000
ORDER BY TOTAL_SALES;
오늘 배운 점:
- 파이썬에서 배운 순차적 문제 해결 방법을 SQL에도 적용해보았다.
- HAVING 명령어를 처음 다루어 보았고, 이를 통해 조건을 그룹화한 데이터에 적용하는 방법을 배웠다.
- HAVING 대신 서브 쿼리를 활용하는 방법도 구상을 해보았지만 코드가 복잡해질 수 있다는 생각이 들었고 가능한 간결한 쿼리를 작성하는 것이 중요함을 배웠다.
'TIL' 카테고리의 다른 글
본 캠프 10일차 TIL (0) | 2024.07.03 |
---|---|
본 캠프 9일차 TIL (0) | 2024.07.02 |
본 캠프 7일차 TIL 제출용 (0) | 2024.06.30 |
본 캠프 6일차 TIL 제출용 (0) | 2024.06.29 |
본 캠프 5일차 TIL 제출용 (0) | 2024.06.28 |