728x90
https://www.acmicpc.net/problem/1069
알고리즘 설명
문제 설명
점프와 걷기를 이용해서 주어진 위치에서 원점으로 돌아가는데 필요한 최소 시간을 구하는 문제
코드 설명
- 걷기만 하는 경우
- 점프를 한 후에 걷는 경우
- 뒤로 조금 걸어간 후 점프를 하는 경우 -> 점프가 효율적이어서 점프 칸 수를 맞추기 위한 뒷걸음
import math
# 입력 받기
x, y, d, t = map(int, input().split())
# 유클리드 거리 계산
dist = (x ** 2 + y ** 2) ** 0.5
# 점프 횟수 계산
jump = dist // d
# 점프를 포함한 최단 시간 계산
if dist >= d:
tmp1 = t * jump + (dist - (d * jump))
tmp2 = t * (jump + 1)
else:
tmp1 = t + (d - dist)
tmp2 = t * 2
# 걷기만 하는 경우
tmp3 = dist
print(f"{min(tmp1, tmp2, tmp3):.9f}")
반응형
'백준 문제풀이 코드저장소 > Gold' 카테고리의 다른 글
Baekjoon 23295. 스터디 시간 정하기 1 / Python (0) | 2024.07.04 |
---|---|
Baekjoon 11779. 최소비용 구하기 2 / Python (0) | 2024.07.04 |
Baekjoon 2252. 줄 세우기 / Python (0) | 2024.07.03 |
Baekjoon 1644. 소수의 연속합 / Python (1) | 2024.07.03 |