728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/132267
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
코드(Java)
class Solution {
public int solution(int a, int b, int n) {
int totalCola = 0; // 지금까지 받은 총 콜라 수
// 빈 병이 교환 가능 개수(a)보다 많을 때만 반복
while (n >= a) {
// 1) 이번에 받을 새 콜라 수
int newCola = (n / a) * b;
// 2) 총 받을 콜라에 추가
totalCola += newCola;
// 3) 다음에 가져갈 빈 병 = (오늘 교환 후 남은 병) + (오늘 받은 새 콜라 병)
n = (n % a) + newCola;
}
return totalCola;
}
}
코드(Python)
def solution(a, b, n):
total_cola = 0 # 지금까지 마트에서 받은 총 콜라 개수
# 현재 가진 빈 병(n)으로 콜라를 교환할 수 있을 때만 반복
while (n >= a):
# 1) 오늘 가져간 빈 병으로 받을 수 있는 새 콜라 개수
new_cola = (n // a) * b
# 2) 받은 콜라를 정답(총량)에 더해줌
total_cola += new_cola
# 3) 다음에 마트에 가져갈 빈 병의 개수 업데이트
# = (교환하고 남은 빈 병) + (오늘 받은 새 콜라를 다 마셔서 생긴 빈 병)
n = (n % a) + new_cola
return total_cola