취준일기

[TIL_알고리즘] 델타를 이용한 2차원 배열 검색

둉영 2020. 11. 7. 12:26

2차원 배열 좌표에서 4방향 인접 배열 요소를 탐색하는 방법 

 

#함수 IsSafe는 인접 배열요소간의 조건을 제한해주는 함수

def IsSafe(y,x):

  if y<=4 and x<=4 and y>=0 and x>-0:   

    return True

  else:

    return False

 

#dy와 dx는 방향을 제시(쌍으로 묶여서 움직임(행,열))

dy=[-1,1,0,0]

dx=[0,0,-1,1#방향(위/아래/오른쪽/왼쪽)

#dx[0]dy[0] => 위

#dx[1]dy[1] => 아래

#dx[2]dy[2] => 오른쪽

#dx[3]dy[3] => 왼쪽

 

#만약 y=2, x=2, dir=0일때

for i in range(col):

  for j in range(row):

    for dir in range(4):

      newY = i+dy[dir] # 2+(-1) = 1

      newX = j+dx[dir] # 2+0 = 2

#(2,2)의 값이 (1,2)으로 이동 (위로)