[프로그래머스] 아이스 아메리카노


문제 설명

머쓱이는 추운 날에도 아이스 아메리카노만 마십니다. 아이스 아메리카노는 한잔에 5,500원입니다. 머쓱이가 가지고 있는 돈 money가 매개변수로 주어질 때, 머쓱이가 최대로 마실 수 있는 아메리카노의 잔 수와 남는 돈을 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.


제한사항

  • 0 < money ≤ 1,000,000

입출력 예

moneyresult
5,500[1, 0]
15,000[2, 4000]

입출력 설명

입출력 예 #1

  • 5,500원은 아이스 아메리카노 한 잔을 살 수 있고 잔돈은 0원입니다.

입출력 예 #2

  • 15,000원은 아이스 아메리카노 두 잔을 살 수 있고 잔돈은 4,000원입니다.

나의 첫번째 풀이

function solution(money) {
  var coffee = 5500;
  var change = [parseInt(money / coffee)];
  var coffeeNumber = [money - coffee * change];
  var answer = [...change, ...coffeeNumber];
  return answer;
}

나의 두번째 풀이(Code Refactoring)

function solution(money) {
  let americano = 5500;
  let bottle = ~~(money / americano);
  let change = money % americano;
  return [bottle, change];
}

// 1. 아메리카노를 변수에 담아준다
// 2. 가지고 있는 돈에서 살 수 있는 아메리카노의 갯수를 변수에 담는다 , 소수가 나오므로 floor 연산이 필요하다
// 3. 가지고 있는 돈에서 아메리카노를 살 수 있는 가격의 나머지를 잔돈 변수를 만든다
// 4. 출력할 두 개의 배열에 아메리카노의 갯수 , 잔돈을 담아서 리턴

참고 할 만한 다른 사람의 코드

function solution(money) {
  let count = 0;
  while (money >= 5500) {
    money -= 5500;
    count++;
  }
  return [count, money];
}

//while문을 통해 계산하는 방법