문제
프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요.
입출력 예 설명
chicken = 100 / result = 11
chicken = 1081 / result = 120
풀이
function solution(chicken) {
let coupon = chicken //치킨수 = 쿠폰수
let service = 0
//쿠폰이 10개 이상일 때 계속반복
while(coupon >= 10) {
//쿠폰을 10으로 나눈 몫 = 서비스 치킨 1개
//나눈 몫이 0보다 작을때까지, 서비스에 1씩 더하기
service += coupon/10 << 0
// 쿠폰 = 남은 쿠폰 + 서비스 치킨 쿠폰
coupon = coupon % 10 + coupon / 10 << 0
}
return service
}
쿠폰이 10개 이상이면 계속 반복해야 햇는데 그생각이 안났고 서비스 치킨은 계산이 잘되지만 남은쿠폰을 쌓아가지 못했다
제출한 풀이도 다른사람의 풀이를 참고해서 겨우 이해했다..
다른 사람의 풀이
function solution(chicken) {
var answer = parseInt((chicken-1) / 9);
return answer;
}
이 풀이는 아직도 이해를 못하겠다 흠..