본문 바로가기
백준

[백준/파이썬] 14215번: 세 막대

by 개발LOG 2024. 3. 23.

https://www.acmicpc.net/problem/14215

 

14215번: 세 막대

첫째 줄에 a, b, c (1 ≤ a, b, c ≤ 100)가 주어진다.

www.acmicpc.net

문제

영선이는 길이가 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