본문 바로가기
알고리즘/[python] 백준 BOJ

[python] 백준 14215 세 막대

by Alan_Kim 2023. 11. 17.
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

댓글