반응형
1. 풀이
처음엔 아래와 같은 경우의 수만 생각했지만, 이는 일직선상에서만 적용되는 경우였다. (소스코드1)
즉 2차원의 경우엔 아래와 같은 예외가 존재한다.
따라서 2차원의 좌표평면의 경우는 아래와 같은 경우의 수를 생각할 수 있다.
2. 소스코드
(1) 소스코드1 (경우의 수 오류)
import math
X,Y,D,T=map(int,input().split())
L=math.sqrt(X**2+Y**2)
if L>=D:
jump=L//D
print("%.10f"%min(jump*T+L-(jump*D),(jump+1)*T))
else:
print("%.10f"%min(L,T+D-L,2*T))
(2) 소스코드2
import math
X,Y,D,T=map(int,input().split())
L=math.sqrt(X**2+Y**2)
if L>=D:
jump=L//D
print("%.10f"%min(L,jump*T+L-(jump*D),(jump+1)*T))
else:
print("%.10f"%min(L,T+D-L,2*T))
반응형