본문 바로가기
알고리즘 문제

각도기 (if문)

by rinny01 2024. 11. 22.
반응형

문제

각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요.

 

오답

function solution(angle) {
    if(0<angle<90){
        return 1;
    }else if(angle == 90){
        return 2;
    }else if(90<angle<180){
        return 3;
    }else if(angle == 180){
        return 4;
    }
}
console.log(solution(170))

 

이 풀이는 틀렸다.

내가 기대한 값은 170이니 3이 출력되어야한다.

하지만 solution함수에서 첫번쨰 if문 0<angle<90 에서 0<angle 이 참이니 해당 조건식을 실행한다.

그래서 1을 리턴하게되니...

 

해결방법

논리연산자 &&를 사용하여 조건문 안의 두 식이 둘다 참일때만 실행하도록 수정하여 준다.

즉 0<angle 도 참이고, angle <90 이 참일때 실행하도록 !

 

논리연산자를 잘 모른다면...

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Logical_AND

 

논리적 AND (&&) - JavaScript | MDN

논리적 AND (&&) (논리적 연결) 연산자는 모든 불리언 피연산자가 true가 되었을 때 해당 피연산자의 집합은true가 됩니다.

developer.mozilla.org

참고하라,,

 

대충 둘다 참이어야만 실행한다는 말이다.

 

function solution(angle) {
    if(0<angle && angle<90){
        return 1;
    }else if(angle === 90){
        return 2;
    }else if(90<angle && angle<180){
        return 3;
    }else if(angle === 180){
        return 4;
    }
}

 

 

그리고 또한가지 

== 를 === 로 변경해주었따

왜?

== 는 동등 연산자로, 값만 비교하고

=== 는 엄격한 동등 연산자로 값과 타입을 모두 비교하기 때문에

더 정확하게 검사할수있다.

 

if문 쓸때 식이 2개이면 논리연산자 쓰기 까먹지말자!

 

반응형
LIST

'알고리즘 문제' 카테고리의 다른 글

[프로그래머스]x만큼 간격이 있는 n개의 숫자_js  (2) 2024.12.24
Javascript 자릿수 더하기  (2) 2024.11.28
배열의 평균값  (1) 2024.11.27
짝수의 합  (3) 2024.11.25
정수로 반환하기  (0) 2024.11.19