세 막대
import sys
def main():
input = sys.stdin.readline
s1, s2, s3 = map(int, input().split())
s1, s2, s3 = sorted([s1, s2, s3])
s3 = min(s3, s1 + s2 - 1)
print(s1 + s2 + s3)
main()
막대의 길이가 곧 삼각형의 세 변의 길이입니다. 5073. 삼각형과 세 변 문제에서 알아본 것과 같이, 가장 긴 변의 길이는 나머지 두 변의 길이의 합보다 작게 해야 삼각형을 만들 수 있습니다. 각 막대의 길이가 정수라는 조건이 있으므로, 나머지 두 막대의 길이의 합에서 $1$을 뺀 값이 가장 긴 막대 길이의 최댓값입니다.
각 막대의 길이 순서를 유지하면서 다른 막대의 길이를 줄이면 가장 긴 막대 길이의 최댓값도 줄어들므로 위 방법에 비해 이득이 없습니다.
또한 가장 긴 막대를 너무 줄여서 길이순서가 바뀌었다면 적어도 s3 - s2 + 1
만큼 길이가 줄어들므로 많아도 s3 - (s1 + s2 - 1)
만큼 길이가 줄어드는 위 방법에 비해 이득이 없습니다.
댓글