Programmers

Programmers 문제 풀이 03

백단비 2023. 3. 25. 10:57

문제 설명 : 각도기

각에서 0도 초과 90도 미만은 예각, 90도 초과 180도 미만은 둔각, 180도는 평각으로 분류합니다.

각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return 하도록

solution 함수를 완성해 주세요.

  • 예각 : 0 < angle < 90
  • 직각 : angle = 90
  • 둔각 : 90 < angle < 180
  • 평각 : angle  = 180

 

-제한 사항-

  • 0 < angle ≤ 180
  • angle은 정수입니다.

 

입출력 예

angle result
70 1
91 3
180 4

삼항연산자로 풀었는데 코드가 한 줄에 좀 많이 들어가서 읽기가 좀... 그러네요

function solution (angle) {
	return (angle < 90) ? 1 : (angle === 90) ? 2 : (angle < 180) ? 3 : 4 ;
 }

 

다른 사람들의 문제 풀이를 봤을 때 filter를 쓴 분이 계셨는데 깔끔하고 좋았습니다.

function solution(angle) {
	return [0, 90, 91, 180].filter(x => x <= angle).length
}

예각 : 1 ~89, 직각 : 90, 둔각 : 91~179, 평각 : 180

filter는 안에 함수(x <= angle)에서 true값만 다시 배열로 반환해 주니까 

angle이 91 일 때 filter로 돌리면

값은 [true, true, false, false]가 나오고

true 값인 [0, 90]을 반환하는데 여기의 길이를 구해주면 문제가 원하는 값이 나오게 됩니다.

 

 

https://programmers.co.kr/

 

프로그래머스

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

programmers.co.kr

 

 

320x100

'Programmers' 카테고리의 다른 글

Programmers 문제 풀이 06  (0) 2023.03.29
Programmers 문제 풀이 05  (0) 2023.03.28
Programmers 문제 풀이 04  (0) 2023.03.27
programmers 문제 풀이 02  (0) 2023.03.24
programmers 문제 풀이 01  (1) 2023.03.23