문제 개요
세 개의 각도가 주어졌을 때, 이 각도들로 양의 넓이를 가지는 삼각형을 만들 수 있는지 판별하는 문제입니다.
예를 들어 입력이 a = 40, b = 120, c = 20이라면, 세 각의 합이 40 + 120 + 20 = 180이므로 결과는 True가 됩니다.
해결 접근 방법
이 문제는 다음과 같은 논리로 해결할 수 있습니다.
- 세 각도 a, b, c가 모두 0이 아니고, 그 합(a + b + c)이 정확히 180인 경우:
- (a + b) >= c 또는 (b + c) >= a 또는 (a + c) >= b 중 하나라도 만족하면
True를 반환합니다. - 그렇지 않으면
False를 반환합니다.
- (a + b) >= c 또는 (b + c) >= a 또는 (a + c) >= b 중 하나라도 만족하면
- 위 조건을 하나라도 만족하지 않으면
False를 반환합니다.
예제 코드
아래 구현 예시를 통해 더 쉽게 이해할 수 있습니다.
def solve(a, b, c):
if a != 0 and b != 0 and c != 0 and (a + b + c) == 180:
if (a + b) >= c or (b + c) >= a or (a + c) >= b:
return True
else:
return False
else:
return False
a = 40
b = 120
c = 20
print(solve(a, b, c))
입력
40, 120, 20
출력
True
추가 설명
삼각형의 내각의 합은 항상 180도입니다. 따라서 세 각도가 모두 0보다 크고 합이 정확히 180이라면 유효한 삼각형이 성립합니다. 참고로 (a + b) >= c 같은 조건은 '한 각도가 나머지 두 각도의 합보다 크거나 같은가'를 검사하는 것으로, 세 양수의 합이 180일 경우 이 조건은 항상 참이 됩니다. 즉, 실질적으로는 '모든 각도가 0이 아니면서 합이 180인지'가 핵심 판별 기준이라고 볼 수 있습니다.