코딩테스트 문제 풀기 Lv0 배열, 수학

휘루·2025년 2월 18일
0

코딩테스트

목록 보기
13/13

두 수의 나눗셈

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

일단 실행하려는 순서는 이렇게 진행이 됩니다.

  1. num1과 num2를 나눈다.
  2. 1,000을 곱한다.
  3. 정수부터 return 하도록 곱한 값에 정수를 구한다.

여기서 Math.floor 사용하는 것과 parseInt를 사용하는 것이 있는데요.
parseInt를 사용하는 경우 여러가지 조건이 생깁니다.

즉 number -> string으로 바꾸는 걸 하려면

  1. 숫자를 문자열로 변환할 경우 ToString을 사용해 변환
  2. 몇진수로 바꿀지 (2, 10, 16) 확인
  3. 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;
  }
}

이런 식으로 풀이하면 됩니다.

profile
반가워요

0개의 댓글