:ledger: 문제 설명

정수 num1num2 가 매개변수로 주어질 때, num1num2 로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 solution 함수를 완성해주세요.

:one: 제한사항

  • 0 ≤ num1 ≤ 100
  • 0 ≤ num2 ≤ 100

:two: 입출력 예

num1 num2 result
3 2 1500
7 3 2333
1 16 62

:three: 입출력 예 설명

:pushpin: 3-1) 입출력 예 설명 #1

num1이 3, num2가 2이므로 3 / 2 = 1.5에 1,000을 곱하면 1500이 됩니다.

:pushpin: 3-2) 입출력 예 설명 #2

num1이 7, num2가 3이므로 7 / 3 = 2.33333…에 1,000을 곱하면 2333.3333…. 이 되며, 정수 부분은 2333입니다.

:pushpin: 3-3) 입출력 예 설명 #3

num1이 1, num2가 16이므로 1 / 16 = 0.0625에 1,000을 곱하면 62.5가 되며, 정수 부분은 62입니다.

:four: 프로그래머스에서 제공한 코드

처음 프로그래머스에서 작성된 코드는 아래와 같다.

function solution(num1, num2) {
    var answer = 0;
    return answer;
}

:ledger: 문제 풀이


const solution = (num1, num2) => Math.floor(num1 / num2) * 1000;

console.log(solution(3,2));
console.log(solution(7,3));
console.log(solution(1,16));

:one: 함수 선언

  • 화살표 함수를 사용하여 num1, num2 매개변수를 받는다.

:two: 풀이

  • 입출력 예 설명에 맞춰 (num1 / num2) * 1000 해주었다.
  • 소수점을 절삭 후 정수 부분만 반환하기 위해 Math.floor() 함수를 사용하여 적용.

:three: 결과 반환

  • num1에 3, num2에 2을 대입할 경우 (3 / 2) * 1000 = 1500 반환
  • num1에 7, num2에 3을 대입할 경우 (7 / 3) * 1000 = 2333 반환 (소수점 절삭)
  • num1에 1, num2에 16을 대입할 경우 (1 / 16) * 1000 = 62 반환 (소수점 절삭)

:four: 실행

  • console.log(solution(3, 2));을 호출하면, 1500 반환
  • console.log(solution(7, 3));을 호출하면, 2333 반환
  • console.log(solution(1, 16));을 호출하면, 62 반환

:fire: 다른 사람의 풀이 참고

틸트(~) 연산자를 사용한 풀이 과정이 있다.
이전 풀이 과정에서도 틸트(~) 연산자를 사용한 풀이 과정이 있어서 이 부분에 대해 공부를 해봐야겠다.

:pushpin: Math 함수 종류와 설명

  • Math.round() : 반올림
  • Math.ceil() : 올림
  • Math.floor() : 내림
  • Math.trunc() : 음수,양수 상관 없이 정수 부분만 반환 (소수점 절삭)
// [111명] 틸트 연산자 사용한 풀이 과정
function solution(num1, num2) {
    return ~~(num1/num2*1000);
}

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges