매일 BOJ

(매일 BOJ) Python 4153번 직각삼각형

norepinephrine 2025. 3. 23. 21:35

📐 문제 요약

세 개의 양의 정수 a, b, c가 주어질 때,
이게 직각삼각형의 세 변일 수 있는지 판단하는 문제야.

  • 입력은 여러 줄로 주어지고,
  • 0 0 0이 들어오면 입력이 끝남.
  • 각 줄에 대해 결과를 right 또는 wrong으로 출력하면 됨.

💡 아이디어 (접근법만!)

  • 직각삼각형은 피타고라스 정리 a² + b² = c²를 만족해야 해.
  • 단, 어떤 변이 가장 긴 변인지 항상 보장되지 않으니까, 먼저 **세 변 중 가장 큰 걸 찾아서 그것을 빗변(c)**으로 보고 체크해야 해.
  • 즉, 입력받은 수들을 정렬한 다음, x² + y² == z² 인지 확인하면 됨.
while True:
    a,b,c = map(int, input().split())
    if a == 0:
        break
    elif a > b and a > c:
        if a*a == (b*b+c*c):
            print('right')
        else:
            print('wrong')
    elif b > a and b > c:
        if b*b == (a*a + c*c):
            print('right')
        else:
            print('wrong')
    elif c > b and c > a:
        if c*c == (a*a + b*b):
            print('right')
        else:
            print('wrong')