교재에 서술된 정답 코드가 아닌, 제가 직접 작성한 코드입니다. 최소 이동 칸을 구하기 위한 것이므로 오른쪽 이동과 아래쪽 이동만 고려하면 된다. 만약 어떤 칸의 오른쪽과 왼쪽에 모두 괴물이 있다면 해당 칸으론 더 이상 이동할 수 없으므로, count에서 -1 해야 한다. 다만 마지막 칸의 경우에는 j + 1 < m과 i + 1 < n 때문에 flag가 True라서 count - 1 되므로, return 시 count에 1을 더해주어야 한다. from collections import deque def solution(x, y): graph[x][y] = 0 queue = deque([(x, y)]) count = 0 while queue: i, j = queue.popleft() count += 1 f..
교재에 서술된 정답 코드가 아닌, 제가 직접 작성한 코드입니다. solution 함수를 구현하여 입력문 생략 게임 캐릭터의 방향과 방문지 출력 등의 테스트 코드 포함 책에 있는 코드와의 차이점 turn_left() 함수 미사용 방문한 위치를 저장하기 위한 맵 미사용 (메모리 효율적) def solution(n, m, x, y, d, maps) : steps = [ [-1, 0], [0, 1], [1, 0], [0, -1] ] # index is the direction 0, 1, 2, 3 count = 1 maps[x][y] = -1 # if visited, change value to -1 limit = 4 print(f'*** visited: {[x, y]} ***') while True : d = ..
교재에 서술된 정답 코드가 아닌, 제가 직접 작성한 코드입니다. n = int(input()) steps = list(input().split()) move = { 'L': (0, -1), 'R': (0, 1), 'U': (-1, 0), 'D': (1, 0) } x, y = 1, 1 for step in steps : xd, xy = move[step][0], move[step][1] x += xd y += xy if x == 0 : x = 1 elif x == n + 1 : x = n elif y == 0 : y = 1 elif y == n + 1 : y = n print(x, y) 개선된 버전 n = int(input()) steps = list(input().split()) move = { 'L':..