반응형
문제
콜라 문제
https://school.programmers.co.kr/learn/courses/30/lessons/132267
예시 코드
function solution(a, b, n) {
return Math.floor((n - b) / (a - b)) * b;
}
풀이
콜라를 받기 위해 마트에 주어야 하는 병 수 a, 빈 병 a개를 가져다주면 마트가 주는 콜라 병 수 b, 상빈이가 가지고 있는 빈 병의 개수 n이 주어질 때, 받을 수 있는 콜라 병 수의 총합을 구하는 문제입니다.
받을 수 있는 콜라 병 수의 총합은 거래 횟수 * b 가 됩니다.
이제 거래 횟수만 구하면 되는데요.
거래 한 번당 실질적으로 소모되는 콜라 병 수는 a - b 입니다.
다만 먼저 a개를 주고 b개를 돌려받기 때문에, 마지막 거래 시에는 이 부분이 문제가 됩니다.
이 문제를 해결하기 위해, 처음 시작 개수를 전체 개수에서 마지막에 돌려받는 b개를 빼준 n - b로 설정합니다.
따라서 답은 Math.floor((n - b) / (a - b)) * b 가 됩니다.
'Coding Problem' 카테고리의 다른 글
[프로그래머스] 기능개발 (1) | 2024.12.06 |
---|---|
[프로그래머스] 카카오 - 캐시 (0) | 2024.12.05 |
[프로그래머스] 모음사전 (1) | 2024.12.03 |
[프로그래머스] 의상 (1) | 2024.12.02 |
[프로그래머스] 카펫 (0) | 2024.12.01 |