FireDrago

Lv0 - 치킨쿠폰 본문

코딩테스트/프로그래머스

Lv0 - 치킨쿠폰

화이용 2023. 6. 25. 22:25

문제 설명

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

 

입출력 예

chicken  result
100 11
1,081 120

 

생각정리

 

1.  주어진 치킨에서 10 나눈 값 + 그 나눈값에서 다시 10 나눈 값 ... 이렇게 10보다 작아질때까지 반복된다. 

2. 문제는 int 가 정수 10으로 나누어지는 과정에서 버려지는 나머지들의 합이 10을 넘기면 결과값이 1커진다는 점이다.

    나머지들을 구한뒤에 다시 전체값에 넣어주면 다음 반복문때 버려지지 않는다.  

 

class Solution {
    public int solution(int chicken) {
        int answer = 0;
        
        while (chicken >= 10) {
            int service_chicken = chicken/10;
            int remain_chicken = chicken%10; //나머지
            answer += service_chicken; // 쿠폰으로 얻는 치킨
            
            chicken = service_chicken + remain_chicken; // 나머지랑 서비스 치킨 다시 더해줌
        }
        
        
        return answer;
    }
}