프로그래밍/백준

[알고리즘] 백준 6322 파이썬 - 직각 삼각형의 두 변

매 석 2022. 12. 29. 15:53
반응형

 

 

6322번: 직각 삼각형의 두 변

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, 직각 삼각형의 세 변의 길이 a, b, c가 주어진다. a, b, c중 하나는 -1이며, -1은 알 수 없는 변의 길이

www.acmicpc.net

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB 3696 1193 1112 34.374%

문제

컴퓨터를 이용하면 수학 계산이 조금 쉬워진다. 다음과 같은 예를 살펴보자. 세 변의 길이가 a, b, c(c는 빗변)이면서 a2+b2=c2를 만족하는 삼각형을 직각삼각형이라고 한다. 이 공식은 피타고라스의 법칙이라고 한다.

직각 삼각형의 두 변의 길이가 주어졌을 때, 한 변의 길이를 구하는 프로그램을 작성하시오.

 

문제풀이

 

import math
cnt=1
while True:
    a,b,c=map(int,input().split())
    if a==b==c==0:
        break
    print("Triangle #"+str(cnt))
    #01
    if c==-1:
        c=math.sqrt(a**2+b**2)
        print("c = {:.3f}".format(c))
    #02
    elif a==-1:
        if b>=c:
            print("Impossible.") 
        else:
            a=math.sqrt(c**2-b**2)
            print("a = {:.3f}".format(a))
    #03
    else:
        if a>=c:
            print("Impossible.") 
        else:
            b=math.sqrt(c**2-a**2)
            print("b = {:.3f}".format(b))
    cnt+=1
    print()

- #01 : c가 -1인 경우 피타고라스 정리를 이용해 c를 구하여 출력해준다.

- #02 : a가 -1인 경우 b가 c보다 크거나 같은지 확인 후 a를 구해준다.

- #03 : b가 -1인 경우 a가 c보다 크거나 같은지 확인 후 b를 구해준다.

           이 중 문제가 생기면 "Impossible."을 출력해준다.

           참고로 마지막 출력간에 빈줄이 표기되어야 정답이 되기에

           꼭 print()를 해주어야 한다.