728x90
반응형
https://www.acmicpc.net/problem/14215
14215번: 세 막대
첫째 줄에 a, b, c (1 ≤ a, b, c ≤ 100)가 주어진다.
www.acmicpc.net
문제 해결
- 삼각형이 만들어지는 조건에 대해서 생각해보는 문제
- 가장 큰 변의 길이는 다른 두변의 길이 합보다 작아야한다!
- 따라서 세 변이 길이를 오름차순으로 정렬 후, 앞에 두 값이 뒤에 있는 값보다 클 때 그렇지 않을 때 나눠서 계산
- 앞에 두 값이 뒤에 있는 값보다 클 때 세 변의 길이를 더하면 끝
- 그렇지 않으면 가장 긴 길이의 막대를 줄여야한다. 그 길이는 앞에 두 값의 합 -1 이다. 따라서 정답은 앞에 두 값의 합*2 -1이다.
CODE
import sys
input = sys.stdin.readline
L = list(map(int, input().split()))
L = sorted(L)
if L[0]+L[1] > L[2]:
print(sum(L))
else:
print(2*(L[0]+L[1])-1)
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[python] 백준 1726 로봇 (1) | 2023.11.22 |
---|---|
[python] 백준 18808 스티커 붙이기 (0) | 2023.11.18 |
[python] 백준 9063 대지 (1) | 2023.11.16 |
[python] 백준 11664 선분과 점 (0) | 2023.11.15 |
[python] 백준 1039 교환 (0) | 2023.11.14 |
댓글