프로그래머스 문제풀이/Level 0

치킨쿠폰 (자바, Java)

뮤츠 2022. 12. 14. 23:34

재귀로 푸는게 제일 나은듯. 효율 이슈로 반복문으로 풀긴 했는데...

표를 만들어서, 예제를 티키타카를 해봤다.

첫 chicken은 전부 쿠폰으로 반환하고,

서비스가 0인 경우, 쿠폰/10을 서비스로 반환한다.

서비스 치킨만큼 쿠폰을 또 추가, 서비스는 비워준다.

이 과정을 반복해서, 서비스가 0이면서, 쿠폰이 10장 미만으로 더이상 추가 치킨이 없는 경우 종료.

 

class Solution {
    public int solution(int chicken) {
        int answer = 0;
        int service = 0;
        // coupon은 chicken으로 그대로 쓴다.
        
        // 재귀를 반복문으로 구현, 서비스 치킨이 남지 않았으면서,
        //잔여쿠폰도 10장 미달이 되면 종료.
        while (!(service==0 && chicken<10)) {
        	if (service==0) {
        		//서비스가 0인 경우 쿠폰을 서비스로 반환
        		service = chicken/10;
        		chicken %= 10;        		
        		answer += service;
        	} else {
        		//서비스 치킨을 쿠폰으로 교환
        		chicken += service;
        		service = 0;
        	}        	
        }
        return answer;
    }
}

'프로그래머스 문제풀이 > Level 0' 카테고리의 다른 글

저주의 숫자 3 (자바, Java)  (0) 2022.12.16
문자열밀기 (자바, Java)  (0) 2022.12.14
다음에 올 숫자 (자바, Java)  (0) 2022.12.13
평행 (자바, Java)  (0) 2022.12.13
다항식 더하기 (자바, Java)  (0) 2022.12.11