삼각형 만들기

면접 대비

시간 제한2초메모리 제한128 MB

요약
N개의 막대 길이 중 삼각형을 이루는 세 개를 골라 둘레의 합이 최대가 되도록 하고, 불가능하면 -1을 출력합니다.
난이도

보통10점 중 4점

유형
정렬, 그리디, 배열
정답자
아직 제출이 없습니다

문제

세준이는 길이가 서로 다를 수도 있는 빨대 N개를 가지고 있다. 이 중 정확히 3개를 골라 삼각형을 만들 수 있다면, 만들 수 있는 삼각형의 세 변 길이 합 중 최댓값을 구한다.

입력

첫째 줄에 빨대의 개수 N이 주어진다. N은 3 이상 1,000,000 이하의 자연수이다.

둘째 줄부터 N개의 줄에 빨대의 길이가 한 줄에 하나씩 주어진다. 각 빨대의 길이는 1 이상 1,000,000 이하의 자연수이다.

출력

삼각형을 만들 수 있다면 가능한 세 변 길이 합의 최댓값을 출력한다. 어떤 3개를 골라도 삼각형을 만들 수 없다면 -1을 출력한다.

예제4

  1. 예제 1

    입력
    3
    1
    2
    3
    
    예상 출력
    -1
    
  2. 예제 2

    입력
    3
    1
    2
    2
    
    예상 출력
    5
    
  3. 예제 3

    입력
    6
    2
    3
    2
    3
    2
    4
    
    예상 출력
    10
    
  4. 예제 4

    입력
    5
    4
    5
    6
    7
    20
    
    예상 출력
    18