Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

냥코센세이

[백준] 1297번 TV 크기(파이썬) 본문

백준/단계별로 풀어보기

[백준] 1297번 TV 크기(파이썬)

yangko 2022. 8. 15. 17:57

이번 문제는 초반에 헛짓거리 하느라 시간이 좀 걸렸다.ㅜㅠㅠ

문제는 대각선의 길이가 주어지고 높이와 너비의 비율이 주어졌을 때 높이와 너비의 실제 길이를 구하는 문제이다.

 

초반에 지레 겁을 먹은 바람에 쉽게 갈수 있었던 문제를 꼬아서 풀었다.

(리스트로 입력받고 또 하나씩 변수에 분배해주고 numpy를 이용해 실수부분을 구하고

또 for문으로 실수 다 돌리면서 답을 찾으려고 했더니 젠장 답이 나올리가 있나....^^)

 

결국 답을 적어보면 이러하다.

사실 이것도 혼자서 구해낸 답은 아니라고 봐야한다. 이리저리 구글링을 한 끝에 나온답이다....

언제쯤 혼자힘으로 문제를 풀어볼지 크흠,,

 

#1297번 TV크기 구하기
D,H,W = map(int,input().split()) #대각선 길이, 높이, 너비
R = D/((H**2 + W**2)**0.5) #비율
H = int(H*R)
W = int(W*R)
print(H,W)

 

코드를 분석하자면, 우선 split함수를 통해 입력된 수들을 공백 기준으로 분리해 주고,

이들을 map함수를 통해 정수 형태로 바꿔 해당 변수에 저장해준다.

 

그리고 처음부터 답을 구하려 하지 말고 우선 주어진 비율에 곱해주는 값을 구해야 한다. 

이를 구하기 위해서는 피타고라스 정리를 이용해야 한다.

 

R이 원래는 H와 W에 각각 곱해져 있지만 이를 다 풀어내 정리하면 

R = D/((H**2 + W**2)**0.5)

이런 식이 나오게 된다. 이때 R은 상당히 더러운 숫자로 나오게 되는데 이러니까 for문을 아무리 돌려도 답이 안나오지,,,,

암튼 이렇게 R값을 구하면 이 문제는 다 푼거나 마찬가지다.

 

본 문제에서 답을 무조건 다 내려서 출력하라 했으니 int형태로 적용해 준다음 출력시키면 답이 나오는 모습을 볼 수 있다. 

하.,,,앞으로도 화이팅,,,,