본문 바로가기
코테연습

177. 콜라문제 Javascript

by hxunz 2023. 1. 20.

https://school.programmers.co.kr/learn/courses/30/lessons/132267

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

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

댓글