https://school.programmers.co.kr/learn/courses/30/lessons/120884
[ 문제 설명 ]
프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다.
쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다.
시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때,
받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요.
[ 문제 풀이 ]
function solution(chicken) {
let remainCoupon = chicken;
let chickenCount = 0;
while (remainCoupon > 9) {
const coupon = Math.floor(remainCoupon / 10);
chickenCount += coupon;
remainCoupon = (remainCoupon % 10) + coupon;
}
return chickenCount;
}
1. let remainCoupon = chicken; : 매개변수로 주어진 chicken 값을 remainCoupon 변수에 할당합니다.
2. let chickenCount = 0; : 치킨 서비스를 받을 수 있는 최대 횟수를 저장할 변수 chickenCount를 0으로 초기화합니다.
3. while (remainCoupon > 9) { ... } : remainCoupon 값이 10 이상인 동안에만 반복합니다.
4. const coupon = Math.floor(remainCoupon / 10); : remainCoupon 값을 10으로 나눈 몫을 계산하여 coupon 변수에 할당합니다. 이 값은 현재 남은 쿠폰 중 10장을 교환할 수 있는 쿠폰의 수입니다.
5. chickenCount += coupon; : coupon 변수에 저장된 값을 chickenCount에 더합니다. 이는 쿠폰 10장을 교환할 수 있을 때마다 치킨 서비스를 받을 수 있기 때문입니다.
6. remainCoupon = (remainCoupon % 10) + coupon; : remainCoupon 값에서 10으로 나눈 나머지와 coupon 값을 더한 값을 remainCoupon 변수에 할당합니다. 이 값은 쿠폰 10장을 교환하고 남은 쿠폰의 수입니다.
7. return chickenCount; : 최대 치킨 서비스 횟수를 저장하고 있는 chickenCount 변수의 값을 반환합니다.
'프론트엔드로 가는 길 > 프로그래머스' 카테고리의 다른 글
44. 문자열밀기 (1) | 2023.04.19 |
---|---|
43.등수매기기 (0) | 2023.04.19 |
41. 프로그래머스_제곱수 판별하기 (0) | 2023.02.15 |
40. 프로그래머스_배열의 유사도 (2) | 2023.02.11 |
39. 프로그래머스_배열 원소의 길이 (2) | 2023.02.08 |