Q. 정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 solution 함수를 완성해주세요.
일단 실행하려는 순서는 이렇게 진행이 됩니다.
- num1과 num2를 나눈다.
- 1,000을 곱한다.
- 정수부터 return 하도록 곱한 값에 정수를 구한다.
여기서 Math.floor 사용하는 것과 parseInt를 사용하는 것이 있는데요.
parseInt를 사용하는 경우 여러가지 조건이 생깁니다.
즉 number -> string으로 바꾸는 걸 하려면
- 숫자를 문자열로 변환할 경우 ToString을 사용해 변환
- 몇진수로 바꿀지 (2, 10, 16) 확인
- 0x가 있으면 16진수, 아무것도 없으면 10진수로 판단하여 10진수로 return
또한 parseInt, Math.floor가 결과의 차이가 있는 경우가 있는데
양수에서는 (0 이상) 별 문제가 없지만
음수에서는 (0 이하) 결과가 달라집니다.
console.log(Math.floor(-1.1))
을 실행하면
Math.floor는 -2
console.log(parseInt(-1.1))
을 실행하면
parseInt는 -1
가 결과로 나옵니다.
왜 이렇게 나오냐면
parseInt는 정수부분만 남기는 함수여서 버림이란 개념이 없습니다.
그래서 소수점을 날리는 것이고
Math.floor는 버림을 하는 함수여서
올림을 하면 -1로 가지만
버림을 하면 -2로 갑니다.
그래서 버림을 하고 싶으면 Math.floor
올림을 하고 싶으면 parseInt
를 사용합니다.
Q. 정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요.
순서는 이와 같습니다.
num1, num2가 === 같으면 return은 1
num1, num2가 != 이면 return은 -1
일단 비교연산자에 대해 알아봐야 합니다.
비교연산자는 여러가지 있는데요.
=== (같을 때)
!== (같지 않을 때)
> (
>=
<=
<
이렇게 6가지가 있습니다.
위의 비교연산자를 연산한 이후에 따라오는 결과 값은 항상 true, false입니다.
이제 if문을 사용하는데요.
if (조건문) { }
보통 이렇게 되어있는데
if (true 또는 false) { }
이런식으로 해석을 하면 되고 이걸 전체적으로 풀어보면
if (true 또는 false) {
(true 내용)
} else if ( true 또는 false) {
(false 내용)
}
이렇게 사용을 할 수 있습니다.
true로 조건이 해석되면 true 내용이 나오고
false로 조건이 해석되면 false 내용이 나옵니다.
function solution (num1, num2) {
if (num1 === num2) {
return 1;
} else if (num1 !== num2) {
return -1;
}
}
이런 식으로 풀이하면 됩니다.