오늘아래와 같은 방식으로 문제를 해결하였다. 하나의 테스트케이스만으로 검증하여서 진짜 맞는 코드인지 분간하기가 어렵다. 

내가 푼 풀이

n, m = map(int, input().split())
x, y, dir = map(int, input().split())

visited = [[0]*m for _ in range(n)]
field1 = [[0]*m for _ in range(n)]
dirs = [(0, -1), (1, 0), (0, 1), (-1, 0)]
result = 1
visited[y][x] = 1

for i in range(n):
    list1 = list(map(int, input().split()))
    for j in range(len(list1)):
        if list1[j] == 1:
            field1[i][j] = 1
            
def dfs(x, y, d,time):
    global result
    d -= 1
    if d <0:
        d = 3
        
    xd = x + dirs[d][0]
    yd = y + dirs[d][1]
    
    if xd>=0 and xd <m and yd>=0 and yd<n:
        if visited[yd][xd] != 1 and field1[yd][xd] !=1:
            result +=1
            visited[yd][xd] = 1
            time = 0
            dfs(xd, yd, d, time)
        else : 
            if time >= 4:
                return
            else:
                dfs(x, y,d, time +1)        
    else:
        
        if time >= 4:
            return
        else:
            dfs(x, y,d, time +1)   
            
dfs(x, y, dir, 0)

정답

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

d = [[0] * m for _ in range(n)]
x, y, direction = map(int, input().split())
d[x][y] = 1

array = []
for i in range(n):
    array.append(list(map(int, input().split())))
    
dx = [-1, 0, 1, 0]
dy = [0, 1, 0 ,-1]

def turn_left():
    global direction
    direction -= 1
    if direction == -1:
        direction = 3
        
count = 1
turn_time = 0
while True:
    turn_left()
    nx = x + dx[direction]
    ny = y + dy[direction]
    if d[nx][ny] == 0 and array[nx][ny] == 0:
        d[nx][ny] = 1
        x = nx
        y = ny
        count += 1
        turn_time = 0
        continue 
    else:
        turn_time += 1
    if turn_time == 4:
        nx = x - dx[direction]
        ny = y - dy[direction]
        if array[nx][ny] == 0:
            x = nx
            y = ny
        else:
            break
        turn_time = 0
print(count)

'Today I Learned' 카테고리의 다른 글

kendogrid batch  (0) 2021.12.14
음료수 얼려먹기 나의 답안  (0) 2021.12.09
kendogrid-isNew()  (0) 2021.12.09
깃 크라켓 사용해보기  (0) 2021.12.05
TIL JUNIT, MOCKITO  (0) 2021.12.01

+ Recent posts