TIL
본 캠프 17일차 TIL
Data 학습자
2024. 7. 10. 20:17
TIL: Python 학습 내용
오늘 풀어본 문제:
콜라 빈 병을 가져다주면 콜라를 받는 문제의 일반화된 버전을 해결하는 문제입니다. 빈 병 a개를 가져다주면 콜라 b병을 주는 마트에서, 빈 병 n개를 가져다주었을 때 받을 수 있는 총 콜라 병 수를 계산하는 함수를 작성합니다.
제한사항:
- 1 ≤ b < a ≤ n ≤ 1,000,000
- 정답은 항상 int 범위를 넘지 않음
구체적 구현:
def solution(a, b, n):
total_cola = 0
while n >= a:
new_cola = (n // a) * b
total_cola += new_cola
n = (n % a) + new_cola
return total_cola
- 초기 설정:
- total_cola 변수를 0으로 초기화하여 총 받을 수 있는 콜라 병 수를 저장할 준비를 합니다.
- 콜라 교환:
- n이 a보다 크거나 같은 동안 반복합니다.
- n // a로 받을 수 있는 새로운 콜라 병 수를 계산하고, 이를 new_cola에 저장합니다.
- total_cola에 new_cola를 더하여 총 콜라 병 수를 갱신합니다.
- 남은 빈 병 수는 n % a와 new_cola의 합으로 갱신합니다.
- 결과 반환:
- 더 이상 콜라를 받을 수 없을 때, total_cola를 반환합니다.
오늘 배운 점:
- 반복문을 사용하여 조건에 따라 값을 갱신하는 방법을 배웠습니다.
- 나눗셈 연산과 나머지 연산을 통해 문제를 해결하는 방법을 익혔습니다.
TIL: SQL 학습 내용
오늘 풀어본 문제:
상반기 아이스크림 총주문량이 3,000보다 높으면서 주 성분이 과일인 아이스크림 맛을 총주문량이 큰 순서대로 조회하는 SQL 문을 작성합니다.
구체적 구현:
SELECT I.FLAVOR
FROM FIRST_HALF F INNER JOIN ICECREAM_INFO I ON F.FLAVOR = I.FLAVOR
WHERE F.TOTAL_ORDER > 3000 AND I.INGREDIENT_TYPE = 'fruit_based'
ORDER BY F.TOTAL_ORDER DESC;
- 테이블 조인:
- FIRST_HALF 테이블과 ICECREAM_INFO 테이블을 FLAVOR 컬럼을 기준으로 내부 조인합니다.
- 조건 필터링:
- TOTAL_ORDER가 3,000보다 큰 행만 선택합니다.
- INGREDIENT_TYPE이 'fruit_based'인 행만 선택합니다.
- 정렬:
- TOTAL_ORDER를 기준으로 내림차순 정렬하여 총주문량이 큰 순서대로 결과를 정렬합니다.
- 결과 반환:
- 필터링된 결과에서 FLAVOR 컬럼만 선택하여 반환합니다.
오늘 배운 점:
- 오늘 문제 풀이에선 없음