BaekJoon 1069번 : 집으로 (python)

owei·2024년 5월 7일

백준

목록 보기
54/62

📝 BaekJoon 1069번 : 집으로 (G3 32.795%)


🔎 집으로 문제


📌 아이디어

나올 수 있는 경우의 수를 분기를 두어 구해준다.


💭 풀이

  • 전체 거리가 d보다 클 때 나올 수 있는 경우의 수는 d로 최대한 뛸 수 있는 만큼 뛰고 나머지는 걷는 방법이 있고, d로 뛸 수 있는 만큼 뛰고 마지막 남은 거리에서 꺾어서 두 번 뛰는 방법이 있고 마지막으로는 처음부터 끝까지 걷는 방법이 있다.
  • 만약 전체 거리가 d보다 작을 때에는 d로 목적지 방향으로 뛰고 원점 방향으로 걷는 방법이 있고, 해당 위치에서 방향을 꺾어서 두 번 뛸 수 있고, 그냥 걷는 방법이 있다.
  • 위의 경우의 수들 중 최소값을 출력해주면 된다.

💻 코드

import sys, math
input = sys.stdin.readline

x, y, d, t = map(int,input().split())
distance = math.sqrt(x**2 + y**2)

if distance >= d :
    ans = min(t*(distance//d) + distance%d, t*(distance//d + 1), distance)
else :
    ans = min(t + (d-distance), 2*t, distance)

print(ans)

profile
owei

0개의 댓글