※문제설명
각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요.
예각 : 0 < angle < 90
직각 : angle = 90
둔각 : 90 < angle < 180
평각 : angle = 180
My Solution
const solution =(angle)=>
(0 < angle && angle < 90) ? 1
: (angle == 90) ? 2
: (90 < angle && angle < 180) ? 3
: 4
더보기
논리 연산자와 다중 삼항 연산자를 사용하여 값 출력
부족한 점 | 처음에는 if문으로 사용하여 '0 < angle < 90' 이라고 작성했다. 역시나 오류가 났다. 문득 && , || 기호가 생각이 났고 검색해서 논리 연산자라는 것을 알게 되었다. 논리 연산자를 이용해서 작성했더니 성공적으로 실행이 됐다. if문에 익숙했던 나는 조금 더 생각해서 삼항연산자를 사용해보고자 했다. 하지만 전에 사용했던 삼항 연산자와 달리 조건문이 여러개였다. 그래서 다중 삼항연산자를 사용하여 코드를 작성했다. 코드 문법 지식 부족 |
개선 방안 | 지식면에서 부족한 부분은 많겠지만 조금씩 알아가는 과정에서 확실하게 기억하고 넘어가자! |
다중 삼항 연산자 구조
(조건문1) ? (조건문 1이 참일때) : (거짓일때 수행할 조건문2) ? (조건문 2 참일때) : (모두 거짓일 때)
논리 연산자
and | 논리식이 모두 참이면 참을 반환함. (AND 연산) |
or | 논리식 중에서 하나라도 참이면 참을 반환함. (OR 연산) |
xor | 논리식이 서로 다르면 참을 반환함. (XOR 연산) |
&& | 논리식이 모두 참이면 참을 반환함. (AND 연산) |
|| | 논리식 중에서 하나라도 참이면 참을 반환함. (OR 연산) |
! | 논리식의 결과가 참이면 거짓을, 거짓이면 참을 반환함. (NOT 연산) |
논리 연산자의 모든 동작의 결과를 보여주는 진리표
A | B | A and B (A && B) | A or B (A || B) | A xor B | !A |
true | true | true | true | false | false |
true | false | false | true | true | false |
false | true | false | true | true | true |
false | false | false | false | false | true |
Different Approach
function solution(angle) {
return [0, 90, 91, 180].filter(x => angle>=x).length;
}
느낀 점 | 다른 신박한 풀이 법을 봤는데 저 부분에 대해 해석해보려고 노력했는데 오래 찾아봤지만 이해 할 수 없었다.. '(x => angle >= x)' 특히 이부분. filter 에 대해서 검색했는데 검색 방법이 잘못된 것인가 나는 비슷한 예시가 나오지않으면 아직 이해하기가 어려운 것 같다 |
참고 블로그 :
'프론트엔드로 가는 길 > 프로그래머스' 카테고리의 다른 글
07. 배열의 평균값 (0) | 2022.11.03 |
---|---|
06. 짝수의 합 (0) | 2022.11.02 |
04. 숫자 비교하기 & 나이 출력 (0) | 2022.10.29 |
03. 두 수의 차 & 곱 (0) | 2022.10.28 |
02. 몫 구하기 (1) | 2022.10.27 |