https://school.programmers.co.kr/learn/courses/30/lessons/132267
1. 문제에 대한 이해
- 우리가 풀어야 할 문제는 무엇인가?
상빈이가 받을 수 있는 콜라의 병 수를 return - 주어진 자료는 무엇인가?
콜라를 받기 위해 마트에 주어야 하는 병 수 a, 빈 병 a개를 가져다 주면 마트가 주는 콜라 병 수 b, 상빈이가 가지고 있는 빈 병의 개수 n - 조건은 무엇인가?
빈 병 a개를 가져다주면 콜라 b병을 주는 마트가 있을 때, 빈 병 n개를 가져다주면 몇 병을 받을 수 있는지 계산하는 문제
2. 계획
- 주어진 총 병의 개수에서 최대로 줄 수 있는만큼 빈병 a개를 빼고 뺀 만큼 b병을 받는다.
- 받은 빈병 수를 더한다.
3. 실행
const solution = (a, b, n, number = 0) => {
let count = Math.floor(n / a);
if (n < a) {
return number
}
return solution(a, b, n - (count * a) + count * b, number + count * b)
};
test('solution', () => {
expect(solution(2, 1, 20)).toEqual(19);
expect(solution(3, 1, 20)).toEqual(9);
expect(solution(3, 2, 10)).toEqual(16);
});
'코테연습' 카테고리의 다른 글
179. 옹알이 Javascript (0) | 2023.01.20 |
---|---|
178. 햄버거 만들기 Javascript (0) | 2023.01.20 |
176. 가장 가까운 같은 글자 Javascript (0) | 2023.01.19 |
176. 과일장수 Javascript (0) | 2023.01.18 |
175. 스킬트리 Javascript (0) | 2023.01.09 |
댓글