유형
구현-시뮬레이션
코드
array = [
[1, 1, 1, 1, 1],
[1, 0, 0, 0, 1],
[1, 1, 0, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1]
]
start_dir = 0
start_x = 1
start_y = 1
dx = [-1, 0, 1, 0]
dy = [0, 1, 0, -1]
count = 0
result = 1
while(1):
array[start_x][start_y] = 1
left = start_dir-1
if left < 0:
left = 3
pos_x = start_x + dx[left]
pos_y = start_y + dy[left]
if 0 <= pos_x <= len(array) and 0 <= pos_y <= len(array):
if array[pos_x][pos_y] == 0:
array[pos_x][pos_y] = 1
start_x = pos_x
start_y = pos_y
count = 0
result += 1
start_dir -= 1
if start_dir < 0:
start_dir = 3
count += 1
for i in array:
print(i)
print(" ")
if count >= 4:
break
print(result)
구현은 사실 설명할 것이 없다. 그냥 차분히 구현해야한다. 다만, 조금 복잡한 구현은 나중에 변수나 함수들이 헷갈리기 시작한다. 또한 방향또한 헷갈릴때가 있는 것 같다. 방향은 많은 연습이 필요하고 변수는 만들때 그 변수의 의미를 잘 표현해줄 이름으로 선정하는 것이 중요한 것 같다.