728x90

[문제 설명]

프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요.

 

[입출력 예]

chicken result
100 11
1,081 120

 

[차근 차근 생각해보기]

  1. 쿠폰 10장 당 치킨 1마리가 서비스로 주어지므로 -> 서비스는 쿠폰 / 10   
  2. 서비스로 사용한 쿠폰의 나머지와 서비스로 받은 치킨을 합해서 다시 계산해야함. 
  3. 이때 처음 쿠폰을 사용할땐 그동안 시켜먹은 치킨이 쿠폰의 개수가 됨. 

 

[코드]

class Solution {
    public int solution(int chicken) {
        int coupon = chicken; // 처음 사용할 쿠폰의 개수
        int answer = 0;

        while (coupon >= 10) { // 쿠폰이 10장 이상이어야 서비스를 받을 수 있음
            int service = coupon / 10;
            answer += service;
            coupon = (coupon % 10) + service;
        }
        return answer;
    }
}

 

[반성할 점]

조건을 차근 차근 생각해보며 문제를 풀어야 하는데

머리속에서 먼가 꼬여서 조건을 잘 파악하지 못했던 문제이다.

시간이 오래 걸리더라도 차근차근 생각해보고 급하게 마음 먹지 않기!    

728x90

+ Recent posts