Algorithm/Baekjoon

백준 게임(1103번 문제) Python3 코드

Bonita SY 2019. 10. 19. 18:05
728x90
반응형

코드) --> 런타임 에러 남 왜 나는지 알려줘~

n, m = map(int, input().split(" "))
board_state = [list(input())  for _ in range(n)]
visited_board = [[False] * m   for _ in range(n)]
count_board = [[-1] * m   for _ in range(n)]

#top, bottom, left, right
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]

x, y= [0, 0]

def move(x, y):
  if (x > n-1 or x < 0) or (y > m-1 or y < 0) or board_state[x][y] == 'H':
    return 0

  if visited_board[x][y]:
    return -1

  if count_board[x][y] != -1:
    return count_board[x][y]

  visited_board[x][y] = True

  for i in range(4):
    distance = int(board_state[x][y])
    nx = x + dx[i] * distance
    ny = y + dy[i] * distance
    count_board[x][y] = max(count_board[x][y], move(nx, ny)+1)

  visited_board[x][y] = False
  return count_board[x][y]




if __name__=="__main__":
  print(move(0, 0))

문제)

https://www.acmicpc.net/problem/1103

 

1103번: 게임

줄에 보드의 세로 크기 N과 가로 크기 M이 주어진다. 이 값은 모두 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 보드의 상태가 주어진다. 쓰여 있는 숫자는 1부터 9까지의 자연수 또는 H이다. 가장 왼쪽 위칸은 H가 아니다. H는 구멍이다.

www.acmicpc.net


ㄹㅇ 핵어렵다~~~으아~~

728x90
반응형