PS/프로그래머스 입문 100제

[프로그래머스] LV.0 치킨 쿠폰 - 자바 [85/100]

yaho!! 2024. 7. 2. 15:47

💬 문제 설명

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

 

🚫 제한 사항

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

 

📢 입출력 예

 

👨‍🏫 입출력 예 설명

 

📃 제출 코드

class Solution {
    public int solution(int chicken) {
        int answer = 0;
        int coupon = chicken;
        
        while (coupon >= 10) {
            int serviceChicken = coupon / 10;
            int remainingCoupons = coupon % 10; 

            answer += serviceChicken; 
            coupon = serviceChicken + remainingCoupons;
        }
        
        return answer;
    }
}

 

✏ 해결방법 & 배운점

 

  • 초기화:
    • `answer`는 서비스 치킨의 총 개수를 저장합니다.
    • `coupon`은 현재 가지고 있는 쿠폰의 수를 저장합니다. 처음에는 구매한 치킨 수와 같습니다.
  • 쿠폰으로 새로운 치킨을 얻는 반복문:
    • 쿠폰이 10개 이상일 때 반복합니다.
    • `newChicken`은 쿠폰으로 얻는 새로운 치킨 수입니다.
    • `remainingCoupons`는 쿠폰을 사용하고 남은 나머지 쿠폰 수입니다.
    • 서비스 치킨 수를 `answer`에 더합니다.
    • `coupon`을 새로운 치킨 수와 남은 쿠폰 수의 합으로 업데이트합니다.
  • 결과 반환:
    • 최종적으로 얻은 치킨의 수를 반환합니다.