본문 바로가기
Coding Test/Java Coding Test

[프로그래머스 / 자바] - 치킨 쿠폰

by nam_ji 2024. 9. 12.

치킨 쿠폰 - LV.0

문제

  • 정수 chicken이 매개변수로 주어집니다.
  • 프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다.
  • 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고,
  • 서비스 치킨에도 쿠폰이 발급됩니다.
  • 시켜먹은 치킨의 수 chicken이 주어질 때
  • 받을 수 있는 최대 서비스 치킨의 수를 출력하는 문제입니다.


테스트 (인텔리제이)

  • 첫 번째 풀이는 우선 쿠폰을 카운트 할 수 있게 for문을 1부터 ckicken의 수 만큼 반복하도록 합니다.
  • 이후 if문으로 for문의 반복되고 있는 위치를 나타내는 i를 10으로 나눴을 때 나누어 떨어지면 (쿠폰으로 치킨을 먹을 수 있는 경우) chicken과 쿠폰으로 먹을 수 있는 치킨 수를 나타내는 answer를 각각 1씩 증가하도록 합니다.
  • 두 번째 풀이는 answer에 chicken을 9로 나눈 몫이 쿠폰으로 치킨을 사 먹을 수 있는 수가 나옵니다.
  • 여기서 중요한 점은 ckicken을 9로 나눴을 때 나누어 떨어지는 값은 answer의 값을 1 감소시켜야 합니다.
    • 예 : chicken이 81이면 9로 나누면 9이지만 결과 값을 8이어야 하기 때문입니다.
package com.example.codingtest;

public class 치킨_쿠폰 {
    public static void main(String[] args) {
        /*
        정수 chicken이 매개변수로 주어집니다.
        프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다.
        쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고,
        서비스 치킨에도 쿠폰이 발급됩니다.
        시켜먹은 치킨의 수 chicken이 주어질 때
        받을 수 있는 최대 서비스 치킨의 수를 출력하는 문제입니다.

        입출력 예
        chicken	result
        100	    11
        1,081	120
         */
//        int chicken = 81;
//        int answer = 0;
//
//        for (int i = 1; i <= chicken; i++) {
//            if (i % 10 == 0) {
//                answer++;
//                chicken++;
//            }
//        }
//        System.out.println(answer);

        //8

        int chicken = 100;
        int answer = chicken / 9;

        if (chicken > 1 && chicken % 9 == 0) {
            answer--;
        }
        System.out.println(answer);
    }
}

프로그래머스 코드

// class Solution {
//     public int solution(int chicken) {
//         int answer = 0;
        
//         for (int i = 1; i <= chicken; i++) {
//             if (i % 10 == 0) {
//                 chicken++;
//                 answer++;
//             }
//         }
        
//         return answer;
//     }
// }

class Solution {
    public int solution(int chicken) {
        int answer = chicken / 9;
        
        if (chicken > 1 && chicken % 9 == 0) {
            answer--;
        }
        
        return answer;
    }
}