알고리즘, 자료구조/Codility

[Javascript] Codility Lesson6 - Triangle

jaee 2022. 8. 15. 14:32

 

https://namu.wiki/w/JavaScript

문제: 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;
}

 

https://app.codility.com/

 

배열에서 요소 3개를 뽑았다고 가정했을 때 가장 큰 값이 나머지 두 값의 합보다 작은 경우가 있는지만 판단하면 된다.