알고리즘, 자료구조/Codility
[Javascript] Codility Lesson6 - Triangle
jaee
2022. 8. 15. 14:32
문제: https://app.codility.com/programmers/lessons/6-sorting/triangle/
문제 요약
- 길이가 N인 배열 A가 주어진다.
- (P,Q,R)이 0 <= P < Q < R < N 이면서 A[P] + A[Q] > A[R], A[Q] + A[R] > A[P], A[R] + A[P] > A[Q] 을 충족하면 삼각관계(triangular)라고 한다.
- 배열 A에서 삼각관계를 충족하는 값들이 있으면 1, 없으면 0을 반환한다.
- N의 범위는 0 ~ 100,000 이다.
- 배열 A의 요소 범위는 −2,147,483,648 ~ 2,147,483,647 이다.
풀이
function solution(A) {
let result = 0;
// 내림차순 정렬
A.sort((a, b) => b - a);
for (let i = 0; i < A.length - 2; i++) {
// 제일 큰 값이 다른 나머지 두 값의 합보다 크면 삼각관계를 충족한다
if (A[i] < A[i + 1] + A[i + 2]) {
result = 1;
break;
}
}
return result;
}
배열에서 요소 3개를 뽑았다고 가정했을 때 가장 큰 값이 나머지 두 값의 합보다 작은 경우가 있는지만 판단하면 된다.