목록코딩 테스트 (121)
공부 기록장
https://www.acmicpc.net/problem/1068 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net 코드 n = int(input()) node = list(map(int, input().split())) del_node = int(input()) def dfs(v): node[v] = -2 for i in range(n): if node[i] == v: dfs(i) dfs(del_node) cnt = 0 for i in range(n): if node[i] != -2 and i not i..
https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 코드 from collections import deque m, n = map(int, input().split()) box = [] for _ in range(n): box.append(list(map(int, input().split()))) dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] time = 0 queue = deque([]) def bfs(que..
https://www.acmicpc.net/problem/1926 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net 코드 import sys sys.setrecursionlimit(10**6) input = sys.stdin.readline n, m = map(int, input().split()) draw = [] for _ in range(n): draw.append(list(map(int, input().split()))) dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def dfs(x, ..
https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 코드 from collections import deque n, k = map(int, input().split()) max_num = 100000 visited = [0] * (max_num + 1) def bfs(): queue = deque() queue.append(n) while queue: x = queue.popleft() if x == k: print(vi..