-
[Javascript] Codility Lesson6 - Triangle알고리즘, 자료구조/Codility 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개를 뽑았다고 가정했을 때 가장 큰 값이 나머지 두 값의 합보다 작은 경우가 있는지만 판단하면 된다.
'알고리즘, 자료구조 > Codility' 카테고리의 다른 글
[Python] Codility Lesson1 - BinaryGap (0) 2022.09.19 [Javascript] Codility Lesson10 - CountFactors (0) 2022.08.20 [Javascript] Codility Lesson1 - BinaryGap (0) 2022.07.19 [Javascript] Codility Lesson9 - MaxDoubleSliceSum (0) 2022.07.11 [Javascript] Codility Lesson9 - MaxSliceSum (0) 2022.06.22