비버놀로지

[SWEA SW Expert Academy] 6019. 기차 사이의 파리 (PYTHON) 본문

ALGORITM/PYTHON

[SWEA SW Expert Academy] 6019. 기차 사이의 파리 (PYTHON)

KUNDUZ 2021. 8. 6. 13:45
728x90

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWajaTmaZw4DFAWM

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

궁금증이 많은 한 소녀는 존 폰 노이만(John von Neumann)에게 다음과 같은 문제를 질문했다.

“두 기차 A, B가 서로를 향해 달리고 있다. 두 기차의 전면부는 250마일 떨어져 있고 기차 A는 시속 10마일, B는 시속 15마일로

달리고 있다.

파리가 기차 A의 전면부에서 기차 B로 시속 20마일의 속력으로 날아간다. 파리가 기차 B의 전면부에 닿으면 바로 방향을 바꿔

기차 A를 향해 같은 속력으로 날아간다.

그러다 기차 A와 B가 충돌하면 파리는 죽을 것이다. 파리는 죽기 전 까지 몇 마일의 거리를 이동했을까?”



폰 노이만은 소녀의 질문에 대해 즉시 무한 급수를 이용해 답이 200마일이라는 것을 계산해냈다.

소녀가 질문한 문제의 조금 더 일반화된 버전을 해결해보자.


[입력]

첫 번째 줄에 테스트 케이스의 수 T가 주어진다.

각 테스트 케이스의 첫 번째 줄에는 네 정수 D, A, B, F (1 ≤ D ≤ 103, 1 ≤ A ≤ B < F ≤ 102) 가 주어진다.

D는 두 기차 전면부 사이의 거리, A는 기차 A의 속력, B는 기차 B의 속력, F는 파리의 속력이다.


[출력]

각 테스트 케이스마다 ‘#t’(t는 테스트케이스 번호를 의미하며 1부터 시작한다)를 출력하고 한 칸을 띄운 후,

각 테스트 케이스마다 파리가 이동한 거리를 출력한다. 정답과의 절대오차나 상대오차가 10-6 이하이면 정답으로 인정한다.

 

이 문제를 푸는 방식으로 거리, 속력, 시간을 활용을 해서 문제를 해결했습니다.

두 기차 A와 B가 충돌하는 시간을 구해서 파리가 그 시간동안 일정한 속도로 비행을 하기 때문에 시간과 속력을 곱해서 답을 도출하게 됩니다.

 

T=int(input())
 
 
for i in range(T):
    D, A, B, F =map(int,input().split())
    time=D/(A+B)
    print(f"#{i+1} {F*time}")
728x90
Comments