프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 chicken
이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요.
chicken | result |
---|---|
100 | 11 |
1,081 | 120 |
function solution(chicken) {
let coupon = chicken;
let serviceChicken = 0;
while (coupon >= 10) {
serviceChicken += parseInt(coupon / 10);
coupon = (coupon % 10) + parseInt(coupon / 10);
}
return serviceChicken;
}
💡 코드풀이
- 쿠폰은 치킨 수만큼 주어진다.
- 쿠폰이 10개 이상이면
- 쿠폰/10의 몫만큼 서비스 치킨 추가
- 그럼 쿠폰은 = 서비스 치킨을 시키고 남은 쿠폰(
coupon%10
) + 서비스로 주문한 치킨에 대한 추가 쿠폰(coupon / 10
) 개가 된다.- 만약 위 쿠폰수가 10개 넘는다면 → while문 안에서 다시 반복된다.
Math.floor
=== ParseInt
=== << 0
?let 값 = 100;
값/7; // 14.285714285714286
/* Math.floor */
Math.floor(값/7); // 14
/* parseInt */
parseInt(값/7) //14
/* 비트 연산자 - 왼쪽 쉬프트 연산자 << */
값/7 << 0 ; //14