728x90
반응형
SMALL
문제
영선이는 길이가 a, b, c인 세 막대를 가지고 있고, 각 막대의 길이를 마음대로 줄일 수 있다.
영선이는 세 막대를 이용해서 아래 조건을 만족하는 삼각형을 만들려고 한다.
- 각 막대의 길이는 양의 정수이다
- 세 막대를 이용해서 넓이가 양수인 삼각형을 만들 수 있어야 한다.
- 삼각형의 둘레를 최대로 해야 한다.
a, b, c가 주어졌을 때, 만들 수 있는 가장 큰 둘레를 구하는 프로그램을 작성하시오.
풀이
- 삼각형의 가장 작은 두변의 길이의 합은 가장 긴 변의 길이보다 커야한다.
- 이를 이용하기위해 입력 받은 수를 모두 배열에 넣어 오름차순으로 정렬해주었다.
- if문에는 주어진 길이들로 삼각형이 될때
- else문에는 주어진 길이들로는 삼각형이 되지 않아 가장 짧은 둘레를 가질 수 있도록
- 가장 작은 두개의 변의 길이를 두배한후 1을 빼주었다.
data = list(map(int, input().split()))
data.sort()
if(data[0]+data[1] > data[2]):
print(sum(data))
else:
print(((data[0] + data[1]) * 2)-1)
728x90
반응형
LIST
'알고리즘 && 자료구조 > 백준' 카테고리의 다른 글
[백준 11279] 최대 힙 (Feat.Python) (0) | 2024.01.03 |
---|---|
[백준 10828] 스택(Feat. Python) (0) | 2023.10.25 |
[백준 10813] 공바꾸기(Feat. Python) (0) | 2023.10.25 |
[백준 10825] 국영수(Feat.Python) (0) | 2023.10.25 |
[백준 1002] 터렛 (Feat. Python) (0) | 2023.10.25 |