목록전체 글 (270)
DHistory
문제 13565번: 침투 첫째 줄에는 격자의 크기를 나타내는 M (2 ≤ M ≤ 1,000) 과 N (2 ≤ N ≤ 1,000) 이 주어진다. M줄에 걸쳐서, N개의 0 또는 1 이 공백 없이 주어진다. 0은 전류가 잘 통하는 흰색, 1은 전류가 통하지 않 www.acmicpc.net 풀이 """ 검은색 -> 전류 차단 (1) 흰색 -> 전류 통함 (0) 위쪽에서 전류 공급 상하좌우로 전달 아래쪽까지 전류가 공급될 수 있는지 판단하는 프로그램 """ import sys from collections import deque n, m = map(int, sys.stdin.readline().rstrip().split()) maps = [] for _ in range(n): maps.append(list(ma..
문제 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net 풀이 """ 할아버지 - 아버지 - 나 ㄴ 1촌 ㄱㄴ 1촌 ㄱ ㄴ 2촌 ㄱ 두 사람의 촌수를 계산하는 프로그램 9 (전체 사람의 수) 7 3 (촌수를 계산해야 하는 서로 다른 두 사람의 번호) 7 (부모 자식들 간의 관계의 수) 1 2 1 3 2 7 2 8 2 9 4 5 4 6 1 - 2 - 7 ㄴ 8 ㄴ 9 ㄴ 3 4 - 5 ㄴ 6 친척 관계가 없는 경우 -1 """ import sys from collections import deq..
문제 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 풀이 """ 1: [4, 6] 2: [4] 3: [5, 6] 4: [1, 2, 7] 5: [3] 6: [1, 3] 1 - 6 - 3 - 5 ㄴ 4 - 2 ㄴ 7 4 6 1 3 1 4 BFS 현재 노드가 부모 노드가 된다. """ import sys from collections import deque n = int(sys.stdin.readline().rstrip()) nodes = [[] for _ in range(n + 1)] for _ in range(n - 1): a, b = map(int, sys.stdin.re..
문제 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 풀이 import sys from collections import deque dx = [-1, -1, -1, 0, 1, 1, 1, 0] dy = [1, 0, -1, -1, -1, 0, 1, 1] def solution(graphs, x, y, visited, n, m): if visited[x][y] or not graphs[x][y]: return False queue = deque([(x, y)]) visited[x][y] = True while..
문제 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어 www.acmicpc.net 풀이 import sys from collections import deque n, m = map(int, sys.stdin.readline().rstrip().split()) visited = [False] * (n + 1) graphs = [[] for _ in range(n + 1)] for _ in range(m): a, b = map(int, sys.stdin.readline().rst..