https://school.programmers.co.kr/learn/courses/30/lessons/120889
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[ 문제 ]

[ 내 풀이 ]
function solution(sides) {
let sortedSides = sides.sort((a, b) => a - b);
return sortedSides[2] < sortedSides[0] + sortedSides[1] ? 1 : 2;
}
// sort()로 정렬하여 가장 큰 값과 나머지를 비교하면 되겠다는 접근방법은 맞았습니다.
// 하지만 sort()가 요소들을 문자열로 변환하고 유니코드 코드 포인트 순서에따라
// 정렬한다는 사실은 처음 알게되었습니다.
// 해당 문제점로 인해 [199, 72, 222]의 경우 sort()로 정렬하여도
// 제대로 정렬되지 않는 문제가 발생하여 원인을 찾아 해결해볼 수 있었습니다.
// 결과적으로 최종 코드와 같이 sides.sort((a, b) => a - b)로 정렬해주어야
// 정상적으로 정렬처리됩니다.
[ 다른 풀이 ]
// 제 풀이와 거의 동일했습니다.
// sort로 정렬하고 삼항연산자를 사용한 풀이법입니다.
function solution(sides) {
sides = sides.sort((a,b) => a-b)
return sides[0]+sides[1] > sides[2] ? 1 : 2;
}
// sort메서드를 사용하고 구조분해할당을 활용한 직관적인 코드
// 깔끔하다는 느낌을 받아 가져오게되었습니다.
function solution(sides) {
const [long, a, b] = sides.sort((a,b) => b-a);
return long < a + b ? 1 : 2
}반응형
'Algorithm > Javascript' 카테고리의 다른 글
| [ 프로그래머스 ] 암호 해독 ( JS ) (2) | 2024.07.23 |
|---|---|
| [ 프로그래머스 ] 369게임 ( JS ) (0) | 2024.07.21 |
| [ 프로그래머스 ] 배열 원소의 길이 ( JS ) (0) | 2024.07.14 |
| [ 프로그래머스 ] 컨트롤 제트 ( JS ) (0) | 2024.07.13 |
| [ 프로그래머스 ] 숨어있는 숫자의 덧셈(1) ( JS ) (0) | 2024.07.10 |
