본문 바로가기

DFS

(5)
[이코테/bfs/삼성 기출] 인구 이동(정답, 풀이, 풀리지 않는 의문..) 문제 https://www.acmicpc.net/problem/16234 https://www.acmicpc.net/problem/16234 정답 from collections import deque n,l,r = map(int,input().split()) graph =[] for _ in range(n): graph.append(list(map(int,input().split()))) dx = [1,0,1,0] dy = [0,-1,0,1] def process(x,y,index): # 한 연합의 인구이동 로직 united = [] # 한 연합에 포함되는 나라가 담길 배열. 인구이동 시 필요 united.append((x,y)) q = deque() # dfs수행. 국경선을 여는 조건에 따라 연합을 확..
[이코테/dfs/백준] 감시 피하기(정답,풀이) 문제 18428번: 감시 피하기 NxN 크기의 복도가 있다. 복도는 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 선생님, 학생, 혹은 장애물이 위치할 수 있다. 현재 몇 명의 학생들은 수업시간에 몰래 복도로 빠져나왔는데, 복 www.acmicpc.net 내 정답 ============================= [ 1 ] ===================================== from itertools import combinations from collections import deque n = int(input()) ground = [] ts, cs = [],[] for i in range(n): data = list(input().split()) for j in range(le..
[이코테/dfs/삼성기출] 연산자 끼워넣기(정답,해설) 문제 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱 www.acmicpc.net 정답(순열) from itertools import permutations n = int(input()) nums = list(map(int,input().split())) data = list(map(int,input().split())) exam = ["p","m","c","d"] opers = [] for d in range(len(data)): for _ in range(data[d]): op..
[dfs/bfs] 연구소 문제 - 크기가 N X M인 연구소 - 0 : 공간, 1 : 벽, 2 : 바이러스 - 바이러스는 상하좌우의 칸으로 퍼져나갈 수 있음 - 벽을 3개 세워서 바이러스를 막아야 함 - 바이러스가 퍼질 수 없는 안전 영역 크기의 최댓값을 구하라 입출력 예시 7 7 2 0 0 0 1 1 0 0 0 1 0 1 2 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 27 정답 # ============= [0] ================ n,m = map(int,input().split()) data = [] temp = [[0] * m for _ in range(n)] for _ in range(n): data.append(list(m..
[dfs/bfs]특정 거리의 도시 찾기 문제요약 1~N번까지의 도시와 M개의 단방향 도로가 존재 모든 도로의 거리는 1 특정 도시 X에서 출발하여 도달할 수 있는 모든 도시 중 최단 거리가 K인 모든 도시의 번호를 출력하라 (없으면 -1 출력) 입출력 예시 4 4 2 1 1 2 1 3 2 3 2 4 4 정답 from collections import deque # ======== [ 1 ] ========== n,m,k,x = map(int,input().split()) graph = [[] for _ in range(n+1)] for _ in range(m): a,b = map(int,input().split()) graph[a].append(b) # ======== [ 2 ] ========== # Q1. -1로 초기화 하는 이유 and ..