콜라 문제
풀이
문제의 상위 지문을 잘 못 이해하고 있어서 시간이 조금 걸렸다.
그것만 아니었다면 금방 풀었다.
- 빈 병을 주면 그것으로 총 몇 개의 콜라로 바꿔먹을 수 있냐를 제시한 문제이다.
- 모든 받은 콜라의 개수를 기록한 변수를 지정.
- while문을 돌면서 빈 병을 바꿀 수 있는 개수로 divmod를 이용해 파악하고 바꿀 수 있는 개수를 coke로 곱하면 이번에 바꾼 콜라 수
- 빈병은 못 바꾼 빈 병과 함께 바꾼 콜라를 비웠으니 이를 합하면 다시 빈 병이 됨
- 이 while문은 현재 가진 빈병이 바꿀 수 있는 빈병보다 적지 않을 때까지 반복.
- 모든 바꿔먹은 콜라 갯수를 return
# 3개를 가져다주면 2개를 주는 경우도 생각해봐야함
def solution(bottle, coke, empty_coke):
all_coke = 0
# 문제에서 단, 보유 중인 빈 병이 2개 미만이면, 콜라를 받을 수 없다. 는 잘 해석해야함.
while empty_coke >= bottle:
tmp_coke, tmp_bottle = divmod(empty_coke, bottle)
all_coke += tmp_coke * coke
empty_coke = tmp_bottle + (tmp_coke * coke)
return all_coke
다른 사람 풀이
딱히 다른 건 없다.
def solution(a, b, n):
answer = 0
while n >= a:
answer += (n // a) * b
n = (n // a) * b + (n % a)
return answer
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 Lv2 N-Queen (python) (1) | 2024.02.03 |
---|---|
프로그래머스 Lv2 숫자의 표현 (python) (0) | 2024.02.03 |
프로그래머스 Lv1 달리기 경주 (python) (0) | 2024.02.02 |
프로그래머스 Lv1 명예의 전당 (1) (python) (0) | 2024.02.02 |
프로그래머스 Lv1 바탕화면 정리 (python) (0) | 2024.02.02 |