치킨 쿠폰 - 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;
}
}
'Coding Test > Java Coding Test' 카테고리의 다른 글
[프로그래머스 / 자바] - 시저 암호 (1) | 2024.09.14 |
---|---|
[프로그래머스 / 자바] - 저주의 숫자 3 (0) | 2024.09.13 |
[프로그래머스 / 자바] - 예산 (0) | 2024.09.11 |
[프로그래머스 / 자바] - PCCE 기출문제 3번 수 나누기 (0) | 2024.09.10 |
[프로그래머스 / 자바] - PCCE 기출문제 7번 가습기 (1) | 2024.09.08 |