728x90
반응형
핵심 포인트
- 기초 구현력
- 삼각형 조건
제출코드
length = sorted(list(map(int, input().split())))
if length[-1] < sum(length[:2]): print(sum(length))
else: print(sum(length[:2]) * 2 - 1)
해설
3개의 각 막대의 길이를 입력받은 뒤 오름차순으로 정렬해줍니다. 일단, 삼각형의 조건을 만족해야하기 때문에 가장 큰 막대의 길이가 나머지 두 막대의 길이의 합보다 짧다면 바로 삼각형을 만들 수 있기 때문에 바로 sum 함수를 이용해서 세 막대 길이의 합을 출력합니다.
다음 조건을 삼각형의 조건이 애초에 만족하지도 않는다면 삼각형의 길이가 최대가 될 수 있는 막대의 길이를 찾아야합니다. 어차피 가장 큰 막대를 제외한 나머지 두 막대의 길이는 바꾸지 않기 때문에 가장 큰 막대의 길이만 조절하면 됩니다. 따라서, 가장 큰 막대의 길이를 두 막대의 길이의 합보다 1만큼 짧게 설정해놓으면 최대 막대의 길이를 얻을 수 있습니다.
참고자료 및 그림출처
728x90
반응형
'Programming > Coding Problem' 카테고리의 다른 글
BOJ 24263번: 알고리즘 수업 - 알고리즘의 수행 시간 2 (0) | 2023.06.15 |
---|---|
BOJ 24262번: 알고리즘 수업 - 알고리즘의 수행 시간 1 (0) | 2023.06.14 |
BOJ 5073번: 삼각형과 세 변 (0) | 2023.06.09 |
BOJ 10101번: 삼각형 외우기 (0) | 2023.06.08 |
BOJ 9063번: 대지 (0) | 2023.06.07 |