공부하기/백준

[Python] 백준 풀기 1297 - TV 크기

XEV 2022. 12. 12. 23:10

파이썬 백준 1297번

브론즈 2

https://www.acmicpc.net/problem/1297

 

1297번: TV 크기

김탑은 TV를 사러 인터넷 쇼핑몰에 들어갔다. 쇼핑을 하던 중에, TV의 크기는 그 TV의 대각선의 길이로 나타낸 다는 것을 알았다. 하지만, 김탑은 대각선의 길이가 같다고 해도, 실제 TV의 크기는

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 기하학, 피타고라스 정리

 

 

 

 

 

문제 풀기

피타고라스 정리를 이용하여 방정식을 만들고, 세로 가로에 적용되어야 할 배수를 기준으로 정리를 한다.

주어진 입력값 D, H, W 를 대입하여 배수 multiplier 를 계산하고, 이것을 높이, 너비에 각각 곱하여 실제 길이를 구한다.

소수점 결과에 대하여 대응하기 위해 math 라이브러리를 불러오고 내림 메서드인 floor() 를 적용하여 소수점을 제거한다.

 

 

 

 

 

코드 보기

import sys
inputdata = sys.stdin.readline
import math


def fnHeightWidth(D, H, W):
    multiplier = (D**2 / (H**2 + W**2)) ** (1/2)
    
    height = multiplier * H
    # print(height)           # test print
    
    width = multiplier * W
    # print(width)            # test print
    
    print(math.floor(height), math.floor(width))


if __name__ == "__main__":
    D, H, W = map(int, inputdata().split())
    
    fnHeightWidth(D, H, W)