N, M = 10, 8 #그래프 크기
x, y = (0, 2) #현재 위치
d = [(0, 1), (1, 0), (0, -1), (-1, 0)] #시계방향으로 돌 경우 이 방향을 순환하게 된다
for i, (dx, dy) in enumerate(d):
nx, ny = x + dx, y + dy
if 0 <= nx < N and 0 <= ny < M: continue
break # i is the direction we can't go
i = (i+1) % 4 #다음 방향; 시계방향으로 돌 경우 선택해야 하는 방향의 index
while True :
dx, dy = d[i] #시계방향으로 돌 경우 선택해야 하는 방향의 index
nx, ny = x + dx, y + dy
if not (0 <= nx < N and 0 <= ny < M) : #바라본 방향이 그래프 바깥이면
i = (i+1) % 4 #회전. 즉 다음 방향 선택
dx, dy = d[i]
x, y = x + dx, y + dy
print(x, y)
설명한게 이거 말한게 맞는지 모르겠는데 나같으면 이렇게 구현 함
내가 생각한것보다 잘만들었는데..
ㄳㄳ