카테고리 없음

[프로그래머스] 콜라 문제 (Java, Python)

garamdev 2026. 9. 7.
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