[프로그래머스] 콜라 문제

younk·2023년 11월 6일
0

콜라문제

콜라문제는 빈병을 주고 새병을 받아 또 빈병을 만들고, 그 빈병으로 새병을 받고 또 빈병을 만들고 ... 같은 매커니즘을 반복하는 알고리즘이었다. 그래서 재귀함수를 사용해 문제를 풀어보았다.

class Solution {
    int a;	// a, b, total은 전역변수 선언
    int b;
    int total;
    
    public int solution(int a, int b, int n) {
        this.a = a;
        this.b = b;

        getBottle(n);
        
        return total;
    }
    // 새병받기 메소드
    void getBottle(int n) {
    	// a보다 가진 병이 적다면 재귀 탈출
        if(n < a) {
            return;
        } 
        int mot = n/a * b;
        int namuji = n%a;
        total += mot;
        getBottle(mot + namuji); 
    }
}

0개의 댓글