[문제풀기]프로그래머스 몫 구하기

yeols·2023년 9월 20일
0

Algorithm

목록 보기
5/16

프로그래머스 몫 구하기

문제 설명

정수 num1, num2가 매게변수로 주어질 때, num1num2로 나눈 몫을 return 하도록 solution 함수를 완성해주세요.


입출력 예

num1num2result
1052
723

입출력 예

입출력 예 #1

  • num1이 10, num2가 5이므로 10을 5로 나눈 몫 2를 return 합니다.

입출력 예 #2

  • num1이 7, num2가 2이므로 7을 2로 나눈 몫 3을 return 합니다.

나의 문제 풀이

function solution(num1, num2) {
    return parseInt(num1/num2);
}

문제 풀이 해설

num1num2를 나눈 값을 parseInt()함수로 float에서 int형으로 캐스팅한다.
parseInt()함수는 소수점을 버림하고 정수만을 return해준다.
parseInt()함수에서 리턴 받은 값을 다시 리턴하여 문제를 해결한다.

다른사람의 풀이

많고 다양한 해결방안이 많지만 그 중에서 가장 생각하지 못한것을 가져와본다.

function solution(num1, num2) {
    return ~~(num1/num2);
}

위 해결방안이 가장 독특(?)해 보였는데 그건 아직 javascript를 다 뜯어먹지 못해 그런거같긴하지만..

  • ~~Math.floor()와 같은 기능을 한다고 한다.
  • ~는 비트 연산자의 not이고, x에 대해 NOT 비트 연산을 하면 -(x + 1)의 결과를 도출하며 소수점은 버려진다.
    예를 들어 ~-54로 계산된다.
  • ~~~로 연산한 값에 다시 ~ 연산을 하여 값을 도출한다.

참고

실행 속도는
~~ > Math.Floor() > parseInt()
순서로 속도가 빠르다고 한다.

profile
흠..

0개의 댓글