Coding Test
[1260번] DFS, BFS
1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net from collections import deque # dfs로 탐색한 결과와 BFS로 탐색한 결과 출력 # 방문할 수 있는 노드가 여러개일 경우 노드 번호가 작은 것을 먼저 방문 # 노드 개수, 에지 개수, 시작 노드 번호 n, m, start = map(int, input().split()) #인접 리스트 list = [[] for _ in range(n+1)] for _ in range(m): s, e = map(in..
[11003번] 최솟값 찾기 (슬라이딩 윈도우, 덱)
11003번: 최솟값 찾기 N개의 수 A1, A2, ..., AN과 L이 주어진다. Di = Ai-L+1 ~ Ai 중의 최솟값이라고 할 때, D에 저장된 수를 출력하는 프로그램을 작성하시오. 이때, i ≤ 0 인 Ai는 무시하고 D를 구해야 한다. www.acmicpc.net 분석 일정 법위에서 최솟값을 찾는 문제 : 슬라이딩 윈도우/ 정렬 정렬 N과 L의 범위가 5,000,000인 문제에서 정렬 사용 불가 슬라이딩 윈도우 덱으로 구현하여 정렬 효과 i-L+1 ~ i 까지 이므로 윈도우 크기는 L로 생각 예시 N: 12, L : 3, A: 1 5 2 3 6 2 3 7 3 5 2 6 1. 새 노드 (3,2)가 저장될 때 뒤에서부터 비교 시작 : (2,5)는 (3,2)보다 숫자가 크므로 덱에서 제거 (최솟값..