본문 바로가기
🖥️ 문제 풀이/프로그래머스

[프로그래머스] Lv0 - Day1 : 사칙연산

by 뒬탕 2022. 11. 5.
반응형

프로그래머스 해답 및 해설

프로그래머스 코딩테스트 입문 레벨0 문제 해결법

 

문제1 :  

바로가기

두 수의 합을 출력

 

파이썬 (Python)

일반적인 해법

def solution(num1, num2):
    return num1 + num2

 

solution = lambda a,b:a+b

 

특수한 해법

solution = int.__add__

기본 정의된 연산자 메서드 이용. 연산자 오버로딩시에 쓰임

 

자바스크립트 (Javascript)

function solution(num1, num2) {
    return num1 + num2;
}

 

solution =  function (num1, num2) { return num1 + num2; }

 

solution = (a,b) => a+b

 

자바스크립트에는 연산자 오버로딩이 없음

 

문제2 : 두 수의 차

바로가기

두 수의 차를 출력

 

파이썬 (Python)

def solution(num1, num2):
    return num1 - num2

 

solution = lambda a,b:a-b

 

solution = int.__sub__

 

자바스크립트 (Javascript)

function solution(num1, num2) {
    return num1 - num2;
}

 

solution = (a,b) => a-b

 

문제3 : 두 수의 곱

바로가기

두 수의 곱을 출력

 

파이썬 (Python)

def solution(num1, num2):
    return num1 * num2

 

solution = lambda a,b : a*b

 

solution = int.__mul__

 

자바스크립트 (Javascript)

function solution(num1, num2) {
    return num1 * num2;
}

 

solution = (a+b) => a*b

 

문제4 : 몫 구하기

바로가기

앞 수를 뒤 수로 나눈 몫을 구하기

 

파이썬 (Python)

def solution(num1, num2):
    return num1//num2

 

solution = lambda a,b : a//b

 

solution = int.__floordiv__

 

자바스크립트 (Javascript)

일반적인 해법

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

두 수를 나눠준 다음 parseInt 함수로 정수로 바꿔준다. Number.toFixed(), Math.trunc(), Math.floor()와 같은 함수들을 이용해줘도 된다.

 

특수한 해법

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

 

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

 

자바스크립트에서는 실수에 비트연산을 하면 정수로 계산하게 된다. 따라서 0만큼 shift 시켜주거나 두 번 부정을 해주어 정수값을 구한다.

반응형

댓글