[Programmers algorithm] 치킨 쿠폰
2023. 2. 17. 01:24ㆍ알고리즘
1. 문제설명
🔊 프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요.
[ 제한조건 ]
- chicken은 정수입니다.
- 0 ≤ chicken ≤ 1,000,000
[ 입출력예시 ]
| chicken | result |
| 100 | 11 |
| 1081 | 120 |
[ 답안 포맷 ]
function solution(chicken) {
var answer = 0;
return answer;
}
2. 문제풀이
const solution = (chicken) => {
let coupon = 0; // 쿠폰 수
let service = 0; // 서비스 치킨 수
// 치킨이 10마리 이상이 아닐때까지 반복문을 실행한다.
while (chicken >= 10) {
// 쿠폰은 치킨을 나눈 나머지를 더해준다.
// 치킨은 10으로 나눈 몫으로 변경해주고,
// 서비스 치킨은 치킨의 수를 더해준다.
coupon += chicken % 10;
chicken = Math.floor(chicken / 10);
service += chicken;
}
// 위 반복문을 거치고 치킨이 10마리 미만으로 남는 경우,
// 치킨 한마리당 쿠폰 1장이므로,
if(chicken < 10) {
// 쿠폰에 치킨의 수를 더해준다.
coupon += chicken;
}
// 쿠폰이 10장 이상인 경우 서비스 치킨을 시킬수 있으므로 반복문을 실행한다.
while(coupon >= 10){
// 쿠폰에서 10장을 빼고,
// 쿠폰과 서비스 치킨을 각각 1씩 더해준다.
coupon -= 10;
++service;
++coupon;
}
// 서비스 치킨의 개수를 리턴해준다.
return service
}'알고리즘' 카테고리의 다른 글
| [Programmers algorithm] 이중우선순위큐 (0) | 2023.06.10 |
|---|---|
| [Programmers algorithm] 배열 회전시키기 (0) | 2023.06.07 |
| [Programmers algorithm] 가위 바위 보 (0) | 2022.12.21 |
| [Programmers algorithm👀] 모스부호 (1) (0) | 2022.12.13 |
| [Programmers algorithm👀] 개미 군단 (0) | 2022.12.13 |