RUBY

게임 개발 본문

PS/This

게임 개발

RUBY_루비 2020. 8. 4. 16:23

출처:: 

분류:: 시뮬레이션

 

1. 문제 이해 및 해결과정

 

2. 풀이방법

1. 시뮬레이션

#게임 개발
#
import sys
sys.stdin = open("input.txt","r")
sizeh,sizew=map(int,input().split())
h,w,dir=map(int,input().split())
visited=[[0]*sizew for _ in range(sizeh)]
visited[h][w]=1 #출발 좌표 방문 처리
dh=[-1,0,1,0]
dw=[0,1,0,-1]
board=[]
for i in range(sizeh):
    board.append(list(map(int,input().split())))

def turn_left():
    global dir
    dir=(dir+3)%4

cnt=1
turn_time=0
#시뮬레이션
while True:

    # 왼쪽방향에 가보지 않은 칸이 존재한다면, 왼쪽으로 한 칸 전진
    turn_left()
    nh=h+dh[dir]
    nw=w+dw[dir]
    #안가봤다면, 움직임
    if visited[nh][nw]==0 and board[nh][nw]==0:
        visited[nh][nw]=1
        h=nh
        w=nw
        cnt+=1
        turn_time=0
        continue #없어도 됨
    #다 가봤거나 바다면
    else:
        turn_time+=1

    #4방향 모두 가본 칸이거나 바다인 경우
    if turn_time==4: #4방향 모두 확인함
        nh= h-dh[dir]
        nw =w-dw[dir]
        #뒤로 갈 수 있으면 움직임
        if board[nh][nw]==0:
            h=nh
            w=nw
        #뒤로 못가면
        else:
            break
        turn_time=0
print(cnt)

 

3. 오답원인

 

4. 알게된 점

 - 문제가 너무 이해가 안되서,, 

'PS > This' 카테고리의 다른 글

[이론] 정렬  (0) 2020.08.04
음료수 얼려 먹기  (0) 2020.08.04
왕실의 나이트  (0) 2020.08.04
시각  (0) 2020.08.04
상하좌우  (0) 2020.08.04
Comments