-
[Algorithm] 델타 탐색 - PythonAlgorithm 2023. 11. 7. 17:17
2차원 배열의 한 좌표에서 4방향(또는 8방향 등 원하는 방향)의 인접 배열 요소를 탐색하는 방법
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # 상하좌우 방향 제시 delta_row = [-1, 1, 0, 0] delta_col = [0, 0, -1, 1] #[0][0]=위 [1][1]=아래 [2][2]=오른쪽 [3][3]=왼쪽 # 상하좌우 한번에 할당 delta_row_col = [[-1, 0], [1, 0], [0, -1], [0, 1]] # 2(0, 1)의 위치를 기준 r = 0 c = 1 for i in range(4): next_row = r + delta_row[i] #위치 인덱스 찾기 next_col = c + delta_col[i] N = len(arr) # 행 / 열의 길이 #파이썬에서는 음수인덱스 출력하기에 0~리스트길이의 조건을 줌 if 0 <= next_row < N and 0 <= next_col < N: print(arr[next_row][next_col])
1) 델타 값은 한 좌표에서 네 방향의 좌표와 x, y의 차이를 저장한 List로 구현한다.
2) 델타 값을 이용하여 특정 원소의 상하좌우에 위치한 원소에 접근할 수 있다.
2차원 List의 가장자리 원소들은 상하좌우 네 방향에 원소가 존재하지 않을 경우가 있으므로, Index를 체크하거나 Index 범위를 제한해야 한다.
'Algorithm' 카테고리의 다른 글
[Algorithm] 백트래킹(backtracking) (0) 2023.11.07