게임 개발
해결방법
전형적인 시뮬레이션 문제이다.
문제해결을 위해서 북: 0,동: 1,남: 2,서: 3 각 방향을 리스트에 index로 생각해서
x축 이동 리스트 [-1,0,1,0], y축 이동 리스트 [0,1,0,-1]를 먼저 두었다.
방향은 반시계 방향으로 확인하는 일이 반복적으로 일어나기 때문에 함수로 구현했다.
캐릭터가 방문한 좌표를 set으로 삽입하고 결과적으로 set의 길이를 출력하도록 했다.
시작점부터 현재 이동방향이 바다면 count를 증가시켜가며 4방향이 모두 갈 수 없다면 while문을 탈출하는 방법으로 구현하였다.
n, m = map(int, input().split())
x, y, d = map(int, input().split())
game = []
for i in range(n):
game.append(list(map(int, input().split())))
def make_direction(d):
if d == 0:
return 3
else:
return d-1
# 북 동 남 서
dx = [-1,0,1,0]
dy = [0,1,0,-1]
visit = set()
visit.add((x,y))
count = 0
while True:
# print(x,y, count)
if count == 4:
break
d = make_direction(d)
mx = x + dx[d]
my = y + dy[d]
if 0<mx<n and 0<my<m:
if game[mx][my] == 1:
count += 1
else:
if (mx,my) not in visit:
x, y = mx, my
visit.add((x,y))
count = 0
else:
count += 1
print(len(visit))
# print(visit)
댓글남기기