(Java)프로그래머스 - 콜라 문제

윤준혁·2024년 2월 25일

나의 풀이

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

과정

  1. 가지고 있는 빈 병의 개수 n이 마트에 주어야하는 a보다 클때
  2. 가지고 있는 빈 병의 개수 n을 마트에 주어야하는 a로 나누고,
    a개를 가져다 주면 마트가 주는 콜라 병 수 b를 곱한다
  3. 가지고 있는 빈 병의 개수 n을 마트에 가져다 준 a개를 나눈 값에 b를 곱하고,
    가지고 있는 빈 병의 개수 n에 마트에 가져다 준 a개를 나눈 나머지를 구해준 뒤,
    두 값을 더해준다

다른 사람 풀이

class Solution {
    public int solution(int a, int b, int n) {
        return (n - b) / (a - b) * b;
    }
}
  • 문제 조건에서 항상 n > b를 만족하기에 식 하나로 깔끔하게 풀어낸 것 같다
  • 대단하다..

0개의 댓글