📕 문제 설명
프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요.
⭐ 제한사항
- chicken은 정수입니다.
- 0 ≤ chicken ≤ 1,000,000
💻 입출력 예
chicken | result |
100 | 11 |
1,081 | 120 |
📚 입출력 예 설명
입출력 예 #1
- 100마리를 주문하면 쿠폰이 100장 발급되므로 서비스 치킨 10마리를 주문할 수 있습니다.
- 10마리를 주문하면 쿠폰이 10장 발급되므로 서비스 치킨 1마리를 주문할 수 있습니다.
- 따라서 10 + 1 = 11 을 return합니다.
입출력 예 #2
- 1081마리를 주문하면 쿠폰이 1081장 발급되므로 서비스 치킨 108마리를 주문할 수 있습니다. 그리고 쿠폰이 1장 남습니다.
- 108마리를 주문하면 쿠폰이 108장 발급되므로 서비스 치킨 10마리를 주문할 수 있습니다. 그리고 쿠폰이 8장 남습니다.
- 10마리를 주문하면 쿠폰이 10장 발급되므로 서비스 치킨 1마리를 주문할 수 있습니다.
- 1마리를 주문하면 쿠폰이 1장 발급됩니다.
- 가지고 있는 쿠폰이 총 10장이므로 서비스 치킨 1마리를 추가로 주문할 수 있습니다.
- 따라서 108 + 10 + 1 + 1 = 120 을 return합니다.
😊 나의 답변
function solution(chicken) {
let coupon = chicken;
let service = 0;
while (coupon >= 10) {
const usedCoupon = Math.floor(coupon / 10);
service += usedCoupon;
coupon -= usedCoupon * 10;
coupon += usedCoupon;
}
return service;
}
진심 엄청 헷갈렸다.
머리로는 100번 이해하는데 왜 적질 못하니
사용한 쿠폰 변수를 만들 생각을 안하고 계속 기존 변수가지고 뭘 하려고 하니까 안되더라
변수 새로 만들어서 계산하여 겨우겨우 풀었음.
어렵진 않았는데 왜이리 오래 걸린건지 🤦♀️
⭐ 놀란 답변
function solution(chicken) {
var answer = parseInt((chicken-1) / 9);
return answer;
}
처음에 이거 보고 뭔소린가 했다.
하나하나 뜯어가며 이해했음... 👍
10장의 쿠폰을 모아 치킨을 받는다 → 서비스 치킨에서도 1장의 쿠폰을 받는다.
입출력 예 #1 에 대입
- 100 - 1 = 99
- 99 / 9 = 11
- 서비스로 받을 수 있는 치킨의 수 = 11
입출력 예 #2 에 대입
- 1081 - 1 = 1080
- 1080 / 9 = 120
- 서비스로 받을 수 있는 치킨의 수 = 120
728x90
반응형
'프로그래머스 > Lv. 0 코딩테스트 입문' 카테고리의 다른 글
[프로그래머스] Lv.0 등수 매기기 / JS (0) | 2023.08.18 |
---|---|
[프로그래머스] Lv.0 로그인 성공? / JS (0) | 2023.08.18 |
[프로그래머스] Lv.0 이진수 더하기 / JS (0) | 2023.08.14 |
[프로그래머스] Lv.0 A로 B 만들기 / JS (0) | 2023.08.14 |
[프로그래머스] Lv.0 k의 개수 / JS (0) | 2023.08.14 |