프로그래머스 : 치킨 쿠폰

Digeut·2023년 3월 6일
0

프로그래머스

목록 보기
15/164

❔문제설명

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

⚠️제한사항

chicken은 정수입니다.
0 ≤ chicken ≤ 1,000,000

🤔아이디어

chicken을 10으로 나누면 서비스로 받는 치킨 (서비스로 받는 치킨도 쿠폰을 받는다) 10의 배수가 아닌 나머지 치킨수의 쿠폰을 받아서 저장. 남은 쿠폰을 저장해서 다시 10의 배수가 되면 서비스 치킨에 포함시키기..?

💡코드풀이

class Solution {
    public int solution(int chicken) {
        int answer = 0;
        int service = 0;
        while(true){
            service = chicken / 10; 
            //10장 채워 받은 서비스 치킨의 수
            chicken = (chicken%10) + service; 
            //10장 채우지 못한 쿠폰수 + 10장채워 받은 서비스 치킨의 쿠폰
            answer += service;
            if(chicken < 10){
                break;
            }
        }
        return answer;
    }
}

서비스로 받는 치킨도 쿠폰에 저장해줘야 하는게 어려웠다.
처음엔 변수를 coupon으로 했다가 더 헷갈려서 service로 바꿨다.
매번 for문만 쓰다가 while써봤는데 더 깔끔한 느낌.

profile
개발자가 될 거야!

0개의 댓글