반응형
1. 문제 소개
- 수학 유형 문제에 해당한다.
2. 코드
import sys
input = sys.stdin.readline
# 1) 빨대 길이가 저장된 배열을 정렬
# 2) 가장 긴 쪽 부터 3개의 빨대로 삼각형 성립 조건 을 검사
# 3) IF 성립조건 = True -> 삼각형 변의 합 계산 후 출력
# 4) IF 성립조건 = False -> 다음 크기의 빨대로 이동
def set_test_case():
N = int(input())
n_side = []
for i in range(0,N):
n_side += [int(input())]
return n_side
def isValidTriangle(triangle):
t_side = sorted(triangle,reverse=True)
# 가장 긴 변 = C
# 삼각형 성립 조건 C < A + B
if t_side[0] < (t_side[1] + t_side[2]):
return True
else:
return False
def solution():
n_side = set_test_case()
n_side = sorted(n_side)
maximum_sum_triangle = -1
for i in range(len(n_side)-1,1,-1):
if isValidTriangle(n_side[ (i - 2) : (i + 1 )]):
maximum_sum_triangle = sum(n_side[ (i - 2) : (i + 1 )])
break
print(maximum_sum_triangle)
solution()
3. 코멘트
- 파이썬으로 제출 시 런타임에러가 발생한다면, sys.stdin 패키지의 입력함수를 이용하길 권한다.
- 오랜만에 유진님, 용범님과 재밌게 문제 풀이했다.
반응형
'Algorithm' 카테고리의 다른 글
Baekjoon 백준 알고리즘 - 좋은 단어 ( 3986 ) (0) | 2022.08.28 |
---|---|
Baekjoon 백준 알고리즘 - 시간 관리 ( 1263 ) (0) | 2022.05.15 |
Baekjoon 백준 알고리즘 - 보물 ( 1026 ) (0) | 2022.05.01 |
Baekjoon 백준 알고리즘 - 다리 놓기 ( 1010 ) (0) | 2022.04.17 |
Baekjoon 백준 알고리즘 - 거북이 ( 8911 ) (0) | 2022.03.13 |