Coding Problem

[프로그래머스] 콜라 문제

Yepchani 2024. 12. 4. 00:00
반응형

문제

콜라 문제

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