Lv. 0 - 두 수의 나눗셈 풀이 과정
문제 설명
정수 num1
과 num2
가 매개변수로 주어질 때,
num1
을 num2
로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 solution 함수를 완성해주세요.
제한사항
- 0 ≤
num1
≤ 100 - 0 ≤
num2
≤ 100
입출력 예
num1 | num2 | result |
---|---|---|
3 | 2 | 1500 |
7 | 3 | 2333 |
1 | 16 | 62 |
입출력 예 설명
3-1) 입출력 예 설명 #1
num1
이 3, num2
가 2이므로 3 / 2 = 1.5에 1,000을 곱하면 1500이 됩니다.
3-2) 입출력 예 설명 #2
num1
이 7, num2
가 3이므로 7 / 3 = 2.33333…에 1,000을 곱하면 2333.3333…. 이 되며, 정수 부분은 2333입니다.
3-3) 입출력 예 설명 #3
num1
이 1, num2
가 16이므로 1 / 16 = 0.0625에 1,000을 곱하면 62.5가 되며, 정수 부분은 62입니다.
프로그래머스에서 제공한 코드
처음 프로그래머스에서 작성된 코드는 아래와 같다.
function solution(num1, num2) {
var answer = 0;
return answer;
}
문제 풀이
const solution = (num1, num2) => Math.floor(num1 / num2) * 1000;
console.log(solution(3,2));
console.log(solution(7,3));
console.log(solution(1,16));
함수 선언
- 화살표 함수를 사용하여
num1
,num2
매개변수를 받는다.
풀이
- 입출력 예 설명에 맞춰
(num1 / num2) * 1000
해주었다. - 소수점을 절삭 후 정수 부분만 반환하기 위해
Math.floor()
함수를 사용하여 적용.
결과 반환
-
num1
에 3,num2
에 2을 대입할 경우 (3 / 2) * 1000 = 1500 반환 -
num1
에 7,num2
에 3을 대입할 경우 (7 / 3) * 1000 = 2333 반환 (소수점 절삭) -
num1
에 1,num2
에 16을 대입할 경우 (1 / 16) * 1000 = 62 반환 (소수점 절삭)
실행
-
console.log(solution(3, 2));
을 호출하면, 1500 반환 -
console.log(solution(7, 3));
을 호출하면, 2333 반환 -
console.log(solution(1, 16));
을 호출하면, 62 반환
다른 사람의 풀이 참고
틸트(~) 연산자
를 사용한 풀이 과정이 있다.
이전 풀이 과정에서도 틸트(~) 연산자
를 사용한 풀이 과정이 있어서 이 부분에 대해 공부를 해봐야겠다.
Math 함수 종류와 설명
-
Math.round()
: 반올림 -
Math.ceil()
: 올림 -
Math.floor()
: 내림 -
Math.trunc()
: 음수,양수 상관 없이 정수 부분만 반환 (소수점 절삭)
// [111명] 틸트 연산자 사용한 풀이 과정
function solution(num1, num2) {
return ~~(num1/num2*1000);
}
링크
- 문제 링크: 문제 링크
- Git: rarrit github
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges