python-algorithm
백준 25558 내비게이션
무적김두칠
2022. 9. 26. 23:07
https://www.acmicpc.net/problem/25558
25558번: 내비게이션
1번 내비게이션이 안내한 경로는 $(0,0) \rightarrow (11,1) \rightarrow (9,9) \rightarrow (10,10)$으로, 총 거리는 $12 + 10 + 2 = 24$이다. 2번 내비게이션이 안내한 경로는 $(0,0) \rightarrow (1,12) \rightarrow (9,9) \ri
www.acmicpc.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import sys
def cal(a,b,c,d):
return abs(c-a)+abs(d-b)
n = int(sys.stdin.readline())
distance_list=[]
start_x, start_y, end_x, end_y = map(int, sys.stdin.readline().split())
for i in range(n):
m=int(sys.stdin.readline())
go_x, go_y = start_x, start_y
sum_distance=0
for j in range(m):
arrive_x, arrive_y = map(int, sys.stdin.readline().split())
sum_distance+=cal(go_x, go_y, arrive_x, arrive_y)
go_x, go_y = arrive_x, arrive_y
sum_distance += cal(go_x, go_y, end_x, end_y)
go_x, go_y = end_x, end_y
distance_list.append(sum_distance)
print(distance_list.index(min(distance_list))+1)
|
cs |
이 문제는 반복문을 통해 내비게이션이 간 거리들을 비교해서
가장 작은 거리를 이동한 내비게이션의 index(+1)을 출력하면 됩니다
반응형