알고리즘/수학

[백준]1069 집으로 #기하

씩씩한 IT블로그 2020. 8. 6. 19:43
반응형

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))

 

반응형