저장을 습관화

코딩 테스트 LV.0 숫자 비교하기 본문

코딩 테스트/프로그래머스 - 자바스크립트

코딩 테스트 LV.0 숫자 비교하기

ctrs 2023. 5. 28. 21:38

프로그래머스 LV.0 숫자 비교하기

https://school.programmers.co.kr/learn/courses/30/lessons/120807

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제 명

숫자 비교하기


2. 문제 설명

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


3. 제한 사항

0 ≤ num1 ≤ 10,000

0 ≤ num2 ≤ 10,000


4. 예시

num1 num2 result
2 3 -1
11 11 1
7 99 -1

5. 기본 제공 코드

function solution(num1, num2) {
    var answer = 0;
    return answer;
}


6. 제출한 내 답

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

    return answer;
}

// 요구조건 num1과 num2가 같으면 1, 다르면 -1 return
// 어떻게 해결할 것인가? if else문 사용

//테스트
console.log(solution(2,3));
console.log(solution(11,11));
console.log(solution(7,99));


7. 특이사항

없음.


8. 다른 사람이 작성한 답

8-1. 삼항연산자

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

더 줄였을때

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

훨씬 깔끔하네..

 

8-2. 

function solution(num1, num2) {
    return ((num1 == num2)-0.5)*2;
}

1) (num1==num2)가 true라면 1이 출력되고, false라면 0이 출력된다.

2) ture라면 (1-0.5)*2 가 되어 1을 return할 것이고, false라면 (0-0.5)*2가 되어 -1을 return할 것이다.

재밌긴한데 좀 돌아간다는 느낌이 든다.

 

8-3. 내가 제출한 답과 비슷하지만, 더 단축한 내용

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

변수 answer조차 선언하지 않고 함수내 조건문에서 바로 return 했다.

이거 좋네