문제 에러 코드 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을 출력합니다.) * 루트 노드가 아닌 ..
문제 코드 from collections import deque import sys input = sys.stdin.readline n, m, r = map(int, input().split()) # n : 정점 m : 간선의 수 r :시작 정점 graph = [[] for _ in range(n+1)] # 빈 그래프 2차원 배열 생성 for i in range(m): a, b = map(int, input().split()) graph[a].append(b)# 연결된 정점들 입력하기 graph[b].append(a) visited = [0] * (n+1)# 정점 n이 몇 번째에 방문하는지 count = 1# 방문하는 차례 visited[r] = 1# 시작 정점 r이 첫 번째 순서 queue = dequ..