기타/Codility

[Easy] Triangle

백곰곰 2022. 6. 7. 22:00
728x90
반응형

[문제]

배열에서 3개의 수를 뽑아 어떤 2개의 수의 합이 나머지 1개의 수보다 큰 조합이 있는지 찾는 문제

 

Triangle coding task - Learn to Code - Codility

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

app.codility.com

[코드]

시간복잡도 : O(N*log(N))

정렬 후에는 A[idx]+A[idx+2] > A[idx+1], A[idx+1]+A[idx+2] > A[idx] 가 당연한 것을 활용

예) [1, 1, 1] -> 1+1>1  / [1, 2, 3] -> 1+3 > 2, 2+3>1

def solution(A):
    # write your code in Python 3.6
    if(len(A)<3) :
        return 0
    A.sort()
    for idx, value in enumerate(A[0:len(A)-2]) :
        if A[idx] + A[idx+1] > A[idx+2] :
            return 1
    return 0

 

728x90

'기타 > Codility' 카테고리의 다른 글

[Easy] PermMissingElem  (0) 2022.06.07
[Easy] OddOccurencesInArray  (0) 2022.06.07
[Easy] MaxNonoverlappingSegments  (0) 2022.06.07
[Elementary] ParkingBill  (0) 2022.06.07
[Easy] ChocolatesByNumbers  (0) 2022.06.06