본문 바로가기
반응형

{ Problem Solving }/Tree5

[트리] 백준 5639번: 이진 검색 트리 / 실버 1 https://www.acmicpc.net/problem/5639 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다 www.acmicpc.net import sys sys.setrecursionlimit(10**5) nums = [] while True: try: a = input() nums.append(int(a)) except: break def divide(start, end): if start > end: return [] if start == end: return [nums[start]] cur = nums[star.. 2021. 6. 28.
[트리] 백준 2263번: 트리의 순회 / 골드 3 https://www.acmicpc.net/problem/2263 2263번: 트리의 순회 첫째 줄에 n(1≤n≤100,000)이 주어진다. 다음 줄에는 인오더를 나타내는 n개의 자연수가 주어지고, 그 다음 줄에는 같은 식으로 포스트오더가 주어진다. www.acmicpc.net import sys sys.setrecursionlimit(10**5) n = int(input()) inord = list(map(int, sys.stdin.readline().split())) postord = list(map(int,sys.stdin.readline().split())) dct = {} for i in range(len(inord)): dct[inord[i]] = i def divide_and_conquer(.. 2021. 6. 28.
[트리] 백준 1068번: 트리 / 골드 5 https://www.acmicpc.net/problem/1068 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net import collections n = int(input()) parents = list(map(int, input().split())) graph = collections.defaultdict(list) root = None for i in range(n): if parents[i] == -1: root = i graph[parents[i]].append(i) delete = int(in.. 2021. 6. 17.
[트리] 백준 11725번: 트리의 부모 찾기 / 실버 2 https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net import collections import sys sys.setrecursionlimit(100000) n = int(input()) edges = collections.defaultdict(list) for i in range(n-1): a, b = map(int, input().split()) edges[a].append(b) edges[b].append(a) answer = [0]*(n+1) visited = [False]*(n+1) def searc.. 2021. 6. 14.
[트리] 백준 1991번: 트리 순회 / 실버 1 https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1≤N≤26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 영문자 www.acmicpc.net class Node: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right def bTree(node): if node.val == '.': return None node.left = bTree(Node(link[node.val][0])) node.right = bT.. 2021. 6. 14.
반응형