공부/Algorithm

프로그래머스 코딩테스트 문제풀이 (두 수의 합 / 두 수의 차 / 두 수의 곱 / 두 수의 나눗셈 / 나머지 구하기 / 숫자 비교하기 / 나이 출력 / 몫 구하기)

ByeongJun 2023. 6. 1. 09:37
반응형
 

코딩테스트 입문 | 프로그래머스 스쿨

코딩테스트에 처음 도전하는 사람들을 위한 입문 문제 모음. 쉬운 문제부터 하나씩 도전해 보면서 코딩테스트에 자신감도 붙이고 문제 해결 능력을 키워보세요!

school.programmers.co.kr

언어 : JavaScript

 

 

 

 

 

두 수의 합

정수  num1 과  num2 가 주어질 때,  num1 과  num2 의 합을 return하도록 soltuion 함수를 완성해주세요.

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

화살표 함수를 이용한 문제풀이

 

 

 

 

 

두 수의 차

정수  num1 과  num2 가 주어질 때,  num1 에서  num2 를 뺀 값을 return하도록 soltuion 함수를 완성해주세요.

function solution(num1, num2) {
    var answer = num1 - num2;
    return answer;
}
function solution(num1, num2) {
    return num1 - num2;
}
const solution = (num1, num2) => num1 - num2

 

 

 

 

 

두 수의 곱

정수  num1 ,  num2 가 매개변수 주어집니다.  num1 과  num2 를 곱한 값을 return 하도록 solution 함수를 완성해주세요.

function solution(num1, num2) {
    var answer = num1 * num2;
    return answer;
}
const solution = (a, b) => a * b

 

 

두 수의 나눗셈

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

function solution(num1, num2) {
    var answer = (num1 / num2) * 1000;
    return parseInt(answer);               // 정수형으로 형변환
}
const solution = (num1, num2) => Math.floor(num1 / num2 * 1000)
// Math.floor은 주어진 숫자를 소수점 아래로 버린 뒤 가장 가까운 정수를 반환하는 함수
function solution(num1, num2) {
    return ~~(num1/num2*1000);
}

 

 

 

 

 

나머지 구하기

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

function solution(num1, num2) {
    var answer = num1 % num2;
    return answer;
}
const solution = (a,b) => a % b

 

 

 

 

 

숫자 비교하기

정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요.

function solution(num1, num2) {
    var answer = 0;
        if(num1 == num2){
            answer = 1;
        }else{
            answer = -1;
        }
    
    return answer;
}

정수 num1과 num2가 명시되어 있으니 '==' 동등 연산자(equality operator)를 사용 가능

function solution(num1, num2) {
    var answer = num1 === num2 ? 1 : -1;
    return answer;
}

if문이 길어지면 보기 불편할 때가 있는데 간단한 if문을 대체할 수 있을 때 사용하는 삼항연산자 

 

 

 

 

 

나이 출력

40살인 선생님이 몇 년도에 태어났는지 궁금해 나이 age 가 주어질 때, 2022년을 기준 출생 연도를 return 하는 solution 함수를 완성해주세요.

function solution(age) {
    return 2023 - age;
}
function solution(age) {
    let today = new Date();
    return today.getFullYear() - age + 1;     // 올해 나이 구하는 방법
}

function solution(age) {
    let today = new Date();
    return today.getFullYear() - age + 1;     // But, 문제는 2022년 기준
}

 

 

 

 

 

몫 구하기

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

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

이외에도 JavaScript로 몫 구하는 몇 가지 방법이 있어 [zeo.y 블로그] 참고한 내용으로 조금 더 남겨본다. 

function solution(num1, num2) {
    const answer = Math.floor(num1 / num2);
    return answer;
}
function solution(num1, num2) {
    const answer = ~~(num1 / num2);
    return answer;
}

// 다른 틸트 연산자 사용법
funtion solution(num1, num2) {
	return ~~(num1 / num2);
}

그렇다. 나도 몰랐다.

Math.floor 같은 결과를 출력한다.

 

~는 비트 연산의 not이고, 숫자에 ~ 연산을 하면 소수점이 버려지는데,

~~는 ~을 두 번 실행한 것으로 숫자에 활용하면 정수 부분만 취할 수 있다. 

수행 속도 또한 가장 빠르다.

반응형

'공부 > Algorithm' 카테고리의 다른 글

프로그래머스 코딩테스트 입문 문제풀이 모음  (0) 2023.06.01