본문 바로가기

코딩 테스트/이것이 코딩테스트다

4-3) 게임 개발

n,m = map(int, input().split())

x,y,d = map(int, input().split())
dx = [-1,0,1,0]
dy = [0,1,0,-1]
nx,ny = 0,0

cord = [[int(y) for y in input().split()]for x in range(n)]
#print(cord)

cnt = 1
cord[x][y] = -1
while 1:
    for _ in range(4):
        d = (d-1) % 4
        nx = x+dx[d]
        ny = y+dy[d]

        if(cord[nx][ny] == 0):
            cord[nx][ny] = -1
            x = nx
            y = ny
            #print(x,y)
            cnt += 1
            break

    if (x==nx and y==ny):
        continue

    # 4방향 모두 이미 갔거나 바다
    d = (d+2) % 4
    nx = x + dx[d]
    ny = y + dy[d]
    d = (d+2) % 4

    if(cord[nx][ny]==1):
        break
    else:
        x=nx
        y=ny
        #cnt += 1
        #print(x,y)

print(cnt)

'코딩 테스트 > 이것이 코딩테스트다' 카테고리의 다른 글

5-2) 탐색 알고리즘 DFS / BFS  (0) 2020.10.13
5-1) Stack, Queue , 팩토리얼 구현  (0) 2020.10.02
4-2) 왕실의 나이트  (0) 2020.10.02
4-1) 상하좌우, 시각  (0) 2020.10.02
3-4) 1이 될 때까지  (0) 2020.10.01