본문 바로가기

Algorithm/문제풀이

Codility Lesson6 - Triangle

🔍 문제


 

 

Triangle coding task - Learn to Code - Codility

Determine whether a triangle can be built from a given set of edges.

app.codility.com

 

✏️ 풀이 - JS


 

배열의 원소중 삼각형을 만들 수 있는 조합이 있는지 묻는 문제이다. 삼각형을 만들기 위해서는 세 변이 있을 때, 가장 큰 변을 제외한 나머지 두 변의 합이 가장 큰 변보다 커야한다.
배열 A를 오름차순으로 정렬한 후 for문을 돌면서 차례대로 3가지 조합을 만들어주면서 1번째, 2번째 숫자를 합한 값이 3번째 숫자보다 큰지 확인해 주면 된다. 시간 복잡도는 O(N*log(N)) 이고 정확도, 효율성 모두 100%로 통과하였다.

function solution(A) {
    //배열의 길이가 3보다 작을 때 return 0
    if(A.length < 3) return 0;

    A.sort((a, b) => {return a-b});

    for(let i = 0; i < A.length-2; i++) {
        if(A[i] + A[i+1] > A[i+2]) return 1;
    }
    //조합이 없는 경우 0
    return 0;
}

 

'Algorithm > 문제풀이' 카테고리의 다른 글

Codility Lesson7 - Brackets  (0) 2019.08.11
Codility Lesson6 - NumberOfDiscIntersections  (0) 2019.08.11
Codility Lesson6 - Distinct  (0) 2019.08.10
Codility Lesson6 - MaxProductOfThree  (0) 2019.08.09
Codility Lesson5 - CountDiv  (0) 2019.08.08