치킨 한마리당 쿠폰 한장을 발급한다. 쿠폰이 열장이 되면 치킨 한마리를 서비스로 받고 서비스 치킨에도 쿠폰이 발급된다. 시켜먹은 치킨의 수가 변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 리턴
나의 풀이
function solution(chicken) {
var totalChickens = chicken; // 총 주문한 치킨 수
var coupons = 0; // 현재 보유한 쿠폰 수
var serviceChickens = 0; // 받은 서비스 치킨 수
while (totalChickens > 0) {
// 치킨 주문
totalChickens--;
// 쿠폰 발급
coupons++;
// 10장의 쿠폰이 모일 때 서비스 치킨 발급
if (coupons >= 10) {
serviceChickens++;
coupons -= 10;
coupons++; // 서비스 치킨을 주문할 때 추가 쿠폰 발급
}
}
return serviceChickens;
}
total / coupons / service 각 변수를 초기화 한다
while 루프는 사용하여 치킨 주문과 쿠폰 발급을 처리
주문한 치킨수를 1 감소/ 쿠폰 수를 1 증가
현재 가지고 있는 쿠폰의 수가 10장 이상이라면 서비스 치킨 1 증가 쿠폰 -10 추가쿠폰 1을 증가시킨다
다른 풀이
function solution(chicken) {
var answer = parseInt((chicken-1) / 9);
return answer;
}
?....
function solution(chicken) {
let answer = 0;
let coupon = chicken
while(coupon >= 10){
answer = answer + parseInt(coupon/10)
coupon = parseInt(coupon/10)+ coupon%10
}
return answer;
}
coupon 변수에 치킨 값을 할당한다
while 문을 사용
coupon값이 10 이상인 동안만 실행
answer에 현재 coupon 값을 10 나눈 몫을 더한다 = 현재 가지고 있는 쿠폰 수를 서비스 치킨으로 환산