첫번째 풀이
- 나머지를 담는 dum 변수
- 나머지와 n을 더했을 때 a보다 크다면 다시 콜라로 교환하고 반복문 종료
- 나머지와 n을 더했을 때 a보다 크다면 다시 콜라로 교환한 후에 다시 반복문을 돌아야 하는 경우가 있을 수도 있으므로 틀림
def solution(a, b, n):
ans = 0
dum = 0
while True:
if n < a:
if n + dum >= a:
n = n + dum
cola = n // a
ans += cola * b
break
else:
break
cola = n // a
dum = dum + (n % a)
ans += cola * b
n = n // a * b
return ans
정답
- 나머지를 담는 변수 제거
- 이렇게 짜면 나머지를 포함해서 교환을 하고, 이어서 또 교환을 진행 할 수 있을 때 계속 진행할 수 있음
def solution(a, b, n):
ans = 0
while True:
if n < a:
break;
ans += (n // a) * b
n = (n // a) * b + (n % a)
return ans
'Algorithm' 카테고리의 다른 글
2016년 / 프로그래머스 (0) | 2025.02.21 |
---|---|
명예의 전당 (1) / 프로그래머스 (0) | 2025.02.17 |
푸드 파이트 대회 / 프로그래머스 (0) | 2025.02.14 |
가장 가까운 같은 글자 / 프로그래머스 (0) | 2025.02.11 |
두 개 뽑아서 더하기 / 프로그래머스 (0) | 2025.02.07 |