https://school.programmers.co.kr/learn/courses/30/lessons/132267
def solution(a, b, n):
answer = 0
while a <= n:
tmp = int(n / a) * b
answer += tmp
n = n - a * int(n / a) + tmp
return answer
문제 풀이
- answer는 교환받은 콜라의 누적 합을 의미한다.
- n이 a보다 작다면 나눠지지 않으므로 콜라를 교환할 수 없다.
- tmp는 교환받을 콜라의 개수이다.
- answer에 교환받을 콜라를 누적해준다.
- n의 값을 바꿔준다. n = 초기의 전체 병의 개수 - 가져간 병의 개수 + 교환받은 콜라
- 반복문을 돌면서 n의 값이 작아지고 n의 값이 a보다 작아 나눠지지 않을 때 반복문을 빠져나오면서 종료
'자료구조 & 알고리즘 관련 > 코딩테스트' 카테고리의 다른 글
통계학 (0) | 2023.01.28 |
---|---|
소트인사이드 (0) | 2023.01.28 |
Design Browser History (0) | 2023.01.26 |
위장 (0) | 2023.01.23 |
폰켓몬 (0) | 2023.01.23 |