문제 위 문제는 탈출할 수 있는 최단 거리를 구하는 문제인데, 2차원 배열이 아닌 3차원 배열을 통해 BFS 탐색을 진행해야 한다.여러 개의 테스트 케이스를 받아 최단 거리를 출력해야 하므로, 무한 루프와 break 조건을 적절하게 설정해줘야 한다.코드from collections import dequeimport sysinput = sys.stdin.readline# 남북서동 상하dx = [-1, 1, 0, 0, 0, 0]dy = [0, 0, -1, 1, 0, 0]dz = [0, 0, 0, 0, -1, 1]while True: L, R, C = map(int, input().split()) if L == 0 and R == 0 and C == 0: break start = None b..
문제 에러 코드 from collections import deque t = int(input()) # 테스트 케이스 개수 for i in range(t): p = input() # 수행할 함수 n = int(input()) # 배열의 개수 arr = input() # 배열 # '[', ']', ',' 특수 문자 제거 후 자료형 변환 num = deque(arr.split('[')[1].split(']')[0].split(',')) if num[0]=='': print('error') break for i in p: if i == 'R': num.reverse() elif i =='D': if len(num) == 0: print('error') break else: num.popleft() if num..
문제 0번째에 위치한 인덱스가 우리가 찾고 있는 숫자이면 삭제 및 출력한다. 우리가 찾는 인덱스가 아닌 경우 왼쪽으로 이동하거나 오른쪽으로 이동시켜 큐의 위치를 변경한다. 양쪽으로 입력과 출력이 일어나므로 덱의 자료구조인 deque를 사용하면 좋습니다. 코드 from collections import deque import sys input = sys.stdin.readline n, m = map(int, input().split()) # 큐의 크기 n 과 뽑으려는 숫자의 개수 m pos = list(map(int, input().split())) # 뽑아내려고 하는 수의 위치 q = deque(i for i in range(1, n+1)) # 큐 설정 cnt = 0 # 카운트 변수 for i in po..
문제 입력 및 출력 코드 n = int(input()) graph = [0 for _ in range(n+1)] for i in range(n): node = int(input()) graph[i+1] = node for i in range(n): cnt = 0 v = graph[i+1] if v == -1: print(cnt) else: while v != -1: v = graph[v] cnt += 1 print(cnt) 풀이 * graph 변수를 입력받는 노드의 크기 + 1 크기로 초기화하여, 각각의 n 노드의 부모의 위치를 저장한다. * cnt 변수는 부모 노드로 위치한 횟수를 더하여, 해당 노드의 높이를 나타냅니다. ( v == -1 이면 루트 노드이기에 0을 출력합니다.) * 루트 노드가 아닌 ..