재귀 함수를 연습할 수 있을만한 문제라 생각해서 열심히 생각해내서 짜냈음.
const exchangeCoke = (needCoke, exchangeCoke, myEmptyCoke) => {
const exchangedCoke = Math.floor(myEmptyCoke / needCoke) * exchangeCoke;
const leftoverCoke = myEmptyCoke % needCoke + exchangedCoke;
return [exchangedCoke, leftoverCoke];
}
function solution(a, b, n) {
let answer = 0;
let currentEmptyCoke = n;
while (currentEmptyCoke >= a) {
const [exchangedCoke, leftoverCoke] = exchangeCoke(a, b, currentEmptyCoke);
answer += exchangedCoke;
currentEmptyCoke = leftoverCoke;
}
return answer;
}
본인은 굉장히 잘 짯고만!! 하는 감상을 가지고 재출하고 다른 사람 코드를 보러 갔는데...
solution = (a, b, n) => Math.floor(Math.max(n - b, 0) / (a - b)) * b
???? ㅋㅋㅋ 어이없음
재귀를 쓰지 않았다면 나도 아래랑 비슷하게 풀게됬을 듯. 쨋든 재밌었다.
function solution(a, b, n) {
let answer = 0;
while (n >= a) {
answer += parseInt(n / a) * b;
n = parseInt(n / a) * b + n % a;
}
return answer;
}
늘 도전하는 모습 짱짱! 참개발자!