-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Silver III] Title: 삼각형 만들기, Time: 576 ms, Memory: 75996 KB -BaekjoonHub
- Loading branch information
Showing
2 changed files
with
53 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# [Silver III] 삼각형 만들기 - 1448 | ||
|
||
[문제 링크](https://www.acmicpc.net/problem/1448) | ||
|
||
### 성능 요약 | ||
|
||
메모리: 75996 KB, 시간: 576 ms | ||
|
||
### 분류 | ||
|
||
그리디 알고리즘, 수학, 정렬 | ||
|
||
### 제출 일자 | ||
|
||
2024년 11월 29일 15:41:23 | ||
|
||
### 문제 설명 | ||
|
||
<p>세준이는 N개의 빨대를 가지고 있다. N개의 빨대 중에 3개의 빨대를 선택했을 때, 이 빨대로 삼각형을 만들 수 있다면, 세 변의 길이의 합의 최댓값을 구하고 싶다.</p> | ||
|
||
### 입력 | ||
|
||
<p>첫째 줄에 빨대의 개수 N이 주어진다. N은 3보다 크거나 같고, 1,000,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 빨대의 길이가 한 줄에 하나씩 주어진다. 빨대의 길이는 1,000,000보다 작거나 같은 자연수이다.</p> | ||
|
||
### 출력 | ||
|
||
<p>첫째 줄에 삼각형 세 변의 길이의 합의 최댓값을 출력한다. 만약 삼각형을 만들 수 없으면 -1을 출력한다.</p> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
import sys | ||
input = sys.stdin.readline | ||
|
||
def makeTriangle(a, b, c): # a >= b >= c | ||
if a >= b + c: | ||
return -1 | ||
return a + b + c | ||
|
||
def solution(): | ||
n = int(input()) | ||
|
||
straw = [] | ||
for _ in range(n): | ||
straw.append(int(input())) | ||
|
||
straw.sort(reverse = True) | ||
|
||
for i in range(n - 2): | ||
result = makeTriangle(straw[i], straw[i + 1], straw[i + 2]) | ||
if result != -1: | ||
break | ||
|
||
return result | ||
|
||
print(solution()) |