문제: 코딩테스트 연습 - 치킨 쿠폰 | 프로그래머스 스쿨 (programmers.co.kr)
문제설명
프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다.
쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다.
시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요.
제한사항
- chicken은 정수입니다.
- 0 ≤ chicken ≤ 1,000,000
입출력 예
chicken | result |
100 | 11 |
1,081 | 120 |
나의 문제 풀이
class Solution {
public int solution(int chicken) {
int coupon = chicken;
int service = 0;
while (coupon >= 10) {
service += coupon / 10;
coupon = coupon % 10 + coupon / 10;
}
return service;
}
}
다른 사람의 문제풀이
class Solution {
public int solution(int chicken) {
int answer = chicken/9;
if(chicken>1&&chicken%9==0){
answer--;
}
return answer;
}
}
느낀점
다른사람의 문제풀이가 너무 짧아서 너무 놀랬다! 짧은 코들르 다른분이 댓글에 해석을 해주셨다!!
해석:
닭 10마리 중 한마리는 공짜 == 9마리를 주문하면 한마리를 공짜로 얻음 == 9 / 9 = 1
다만 첫 주문시에는 10마리 값을 모두 지불해야 공짜 닭을 받을 수 있기 때문에, 9로 딱 나누어 떨어질 경우 마지막 한마리 값을 더 지불해야 합니다.
또 한마리도 시켜먹지 않았을 경우에도 받을 수 없는 공짜 닭이 없어 if조건에서 true를 반환받기 때문에 조건에서 제외해주어야 합니다.
'코딩테스트 연습 > 프로그래머스 LV.0' 카테고리의 다른 글
[프로그래머스] Lv.0 등수 매기기 - 자바(Java) (0) | 2024.04.22 |
---|---|
[프로그래머스] Lv.0 로그인 성공? - 자바(Java) (0) | 2024.04.21 |
[프로그래머스] Lv.0 이진수 더하기 - 자바(Java) (0) | 2024.04.15 |
[프로그래머스] Lv.0 A로 B 만들기 - 자바(Java) (0) | 2024.04.14 |
[프로그래머스] Lv.0 k의 개수 - 자바(Java) (0) | 2024.04.11 |