프로그래밍/백준

[알고리즘] 백준 17247 파이썬 - 택시 거리

매 석 2023. 3. 7. 18:45
반응형

 

 

17247번: 택시 거리

첫 줄엔 문자열의 높이 N과 가로 M이 주어진다. (2 ≤ N, M ≤ 1,000) 이다. 두 번째 줄부터 M개의 숫자 0또는 1이 예제 입력과 같이 N개의 줄에 걸쳐 입력된다. 1는 항상 두 개만 입력된다.

www.acmicpc.net

문제

택시 거리는 바둑판 모양의 도로망을 가진 도시에서 점 A에서 B까지의 최단 거리를 구할 경우 도로를 따라서만 가는 가장 짧은 거리를 뜻한다.

위의 사진에서는 빨간색 선이 택시거리이다. 즉, 점 A의 좌표가 (x1, y1)이고 점 B의 좌표를 (x2, y2)라고 했을 때, 두 장소 사이의 택시 거리 D는 다음과 같다.

인접한 0과 0, 0과 1, 1과 1 사이의 거리를 1이라고 할 때, 두 1 사이의 거리를 구하는 프로그램을 작성하시오.

 

문제풀이

n,m=map(int,input().split())
tmp=[]
for i in range(n):
	#01
    s=list(map(int,input().split()))
    for j in range(len(s)):
        if s[j]==1:
             tmp.append([i,j])
#02
print(abs(tmp[1][0]-tmp[0][0])+abs(tmp[1][1]-tmp[0][1]))

- #01 : s 값 중에 1인 값의 좌표를 tmp에 추가한다. 총 2개를 추가하게 된다.

- #02 : x값 끼리의 차와 y값 끼리의 차를 절댓값을 사용하여 더하여 출력한다.