본문 바로가기
백준

[백준] 14215번 : 세 막대 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 11. 2.
728x90
반응형

 

 

14215번: 세 막대

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

www.acmicpc.net

 

1. 문제 설명

2. 풀이과정

  1. sys.stidn.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
  2. 세 막대의 길이를 입력받는다. a, b, c = map(int, sys.stdin.readline().split())
  3. 세 막대 중 길이가 가장 긴 막대의 길이를 저장한다. MAX = max(a, b, c)
  4. 나머지 두 막대의 길이의 합을 저장한다. SUM = (a + b + c) - MAX
  5. 삼각형이 되려면 가장 긴 변의 길이가 나머지 두 변의 길이 합보다 작아야 한다. 따라서 제일 긴 막대의 길이가 나머지 두 막대의 길이의 합보다 작으면 if (MAX < SUM)
  6. 자르지 않아도 삼각형이 될 수 있으므로 세 막대의 길이 합을 출력한다. print(a + b + c)
  7. 반면 가장 긴 막대의 길이가 나머지 두 막대의 길이의 합보다 크거나 같으면 else
  8. 가장 긴 막대의 길이를 잘라야 삼각형을 만들 수 있다. 삼각형의 둘레가 가장 커야 하므로 최소한으로 막대를 잘라야 한다.
  9. 가장 긴 막대의 길이가 나머지 두 막대의 길이 합보다 작으면 되기 때문에 나머지 두 막대의 길이의 합에 1을 뺀 값으로 긴 막대를 자른다. MAX = SUM - 1
  10. 원래 나머지 두 막대의 길이 합과 새로 자른 가장 긴 막대의 길이를 더해 출력한다. print(SUM + MAX)
반응형

3. 소스코드

import sys

a, b, c = map(int, sys.stdin.readline().split())

MAX = max(a, b, c)
SUM = (a + b + c) - MAX

if (MAX < SUM):
    print(a + b + c)
else:
    MAX = SUM - 1
    print(SUM + MAX)
728x90
반응형