Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 세 변의 길이가 주어졌을 때 삼각형 성립 여부 판별하는 방법

세 변의 길이가 주어졌을 때, 이 세 변이 실제로 하나의 삼각형을 만들 수 있는지 확인해야 하는 경우가 있습니다.

예를 들어 입력이 sides = [14, 20, 10]이라면 출력은 True가 됩니다. 가장 긴 변인 20이 나머지 두 변의 합(10 + 14 = 24)보다 작기 때문입니다.

삼각형 부등식 원리

삼각형이 성립하려면 삼각형 부등식(Triangle Inequality)을 만족해야 합니다. 즉, 세 변 중 가장 긴 변은 반드시 나머지 두 변의 합보다 작아야 합니다. 두 변의 합이 가장 긴 변보다 작거나 같으면 세 선분이 닫힌 도형을 이룰 수 없습니다.

해결 절차

  • 먼저 변의 길이 리스트를 오름차순으로 정렬합니다.
  • 가장 짧은 두 변의 합이 가장 긴 변보다 작거나 같으면 False를 반환합니다.
  • 그 외의 경우에는 True를 반환합니다.

다음 구현 예제를 통해 더 자세히 이해해 보겠습니다.

예제 코드

def solve(sides):
    sides.sort()
    if sides[0] + sides[1] <= sides[2]:
        return False
    return True

sides = [14, 20, 10]
print(solve(sides))

입력

[14, 20, 10]

출력

True

위 코드에서는 sides.sort()를 호출하여 세 변을 오름차순으로 정렬한 뒤, 가장 짧은 두 변의 합과 가장 긴 변을 비교합니다. 14 + 10 = 24가 20보다 크므로 조건을 통과해 True가 출력됩니다. 만약 입력이 [1, 2, 5]였다면 1 + 2 = 3이 5보다 작아 False가 반환됩니다.