Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Tags more
Archives
Today
Total
관리 메뉴

luke

[프로그래머스] - 콜라문제 (Java/자바) 본문

알고리즘문제/프로그래머스(Java)

[프로그래머스] - 콜라문제 (Java/자바)

luke-king 2025. 9. 7. 15:57

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/132267

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

 

 

 

 

 

 

 

 

문제.


 

 

 

 

 

 

풀이.


class Solution {
    public int solution(int a, int b, int n) {
        int answer = 0;
        
        while(n / a > 0){
            answer +=  (n/a) * b;
            n = (n/a) * b + (n%a);
        }
        
        return answer;
    }
}

이번 문제는 프로그래머스 "콜라문제" 문제다.

문제 접근은 공병 2병을 가져다주면 음료 1병을 줘서 최대한 나눌 수 있는 만큼 구하는 문제다.

그럼 바로 풀이 해보겠다.

 

1. while문을 사용해 조건을 n / a > 0으로 해준다. 이유는 교환 가능할 때만 실행해야 하기 때문이다. >= 을 사용 한다면 무한 반복 하게 된다.

 

2. answer += (n/a) * b는 교환한 병 개수를 저장해준다.

 

3. n = (n/a) * b + (n% a)는 새로 받은 개수 + 남은 나머지 병이다. 그럼 끝이다.