반응형
문제
https://www.acmicpc.net/problem/1448
소스코드
import sys
input = sys.stdin.readline
n = int(input())
data = []
for i in range(n):
data.append(int(input()))
data.sort()
data.reverse()
for i in range(n - 2):
if data[i] < data[i + 1] + data[i + 2]:
print(data[i] + data[i + 1] + data[i + 2])
break
else:
if i == n - 3:
print(-1)
삼각형은 세변이 주어졌을때, 가장 긴 변이 나머지 두 변의 합보다 작아야합니다.
이를 기억하고 주어진 데이터를 내림차순으로 정렬한뒤 위에서부터 삼각형이 되는 조건을 비교해보며 탐색하면 되는 문제입니다.
반응형
'Programming > 알고리즘' 카테고리의 다른 글
[코드트리] 가장 많이 겹치는 구간 (+1-1 technique) (5) | 2024.09.11 |
---|---|
[백준 / Python] 2206번 벽 부수고 이동하기 (0) | 2024.08.21 |
[백준 / Python] 18917번 수열과 쿼리 38 (1) | 2024.06.10 |
[백준 / Python] 11000번 강의실 배정 (0) | 2024.05.29 |
[백준 / Python] 14370번 전화번호 수수께끼 (Large) (0) | 2024.05.16 |
댓글