https://www.acmicpc.net/problem/14215
문제
영선이는 길이가 a, b, c인 세 막대를 가지고 있고, 각 막대의 길이를 마음대로 줄일 수 있다.
영선이는 세 막대를 이용해서 아래 조건을 만족하는 삼각형을 만들려고 한다.
- 각 막대의 길이는 양의 정수이다
- 세 막대를 이용해서 넓이가 양수인 삼각형을 만들 수 있어야 한다.
- 삼각형의 둘레를 최대로 해야 한다.
a, b, c가 주어졌을 때, 만들 수 있는 가장 큰 둘레를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 a, b, c (1 ≤ a, b, c ≤ 100)가 주어진다.
출력
첫째 줄에 만들 수 있는 가장 큰 삼각형의 둘레를 출력한다.
예제 입력 1
1 2 3
예제 출력 1
5
예제 입력 2
2 2 2
예제 출력 2
6
예제 입력 3
1 100 1
예제 출력 3
3
예제 입력 4
41 64 16
예제 출력 4
113
소스코드:
arr = list(map(int, input().split()))
arr.sort()
a, b, c = arr
if a + b <= c:
c = a + b - 1
print(a + b + c)
풀이:
삼각형은 가장 긴 변이 나머지 두 변의 합보다 작아야 만들어 질 수 있다.
만약 a + b > c가 아닌 a + b <= c 라면(가장 긴 변이 두 변의 합보다 크거나 같다면) c를 두변합-1로 바꿔줘야 삼각형이 형성된다.)
'백준' 카테고리의 다른 글
[백준/파이썬] 4673번: 셀프 넘버 (1) | 2024.03.23 |
---|---|
[백준/파이썬] 2292번: 벌집 (0) | 2024.03.23 |
[백준/파이썬] 1002번: 터렛 (1) | 2024.03.23 |
[백준/파이썬] 10818번: 최소, 최대 (0) | 2024.03.23 |
[백준/파이썬] 8393번: 합 (0) | 2024.03.23 |