트리
-
[백준] Python - 트리메모/알고리즘 2021. 10. 10. 04:59
1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net 트리의 리프 노드의 개수를 확인하는 문제다. 내 개인 서버에서는 잘 돌아가는데 백준 테스트 케이스에서 어떤 경우가 있는지 몰라서 예제만 확인했더니... 에러를 해결하지 못했다. 그래서 어떤 알고리즘으로 찾아 힌트를 봤더니 dfs를 쓴다 했다. 깊이 우선 탐색을 재귀로 짜서 리프노드에 도달하면 갯수 +1 하고 리턴, 삭제노드의 부모가 자식이 1개면 갯수 +1 이런식으로 구현했다. 더보기 from sys import stdin n = int(stdin.read..
-
[백준] Python - 트리 순회메모/알고리즘 2021. 9. 24. 16:24
1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net 이진 트리 순회 문제다. 트리 순회보다 트리 생성하는게 시간이 더 걸렸다... 파이썬 코드 확인 더보기 from sys import stdin class Node: def __init__(self,node): self.info = node self.left = None self.right = None class Tree: def __init__(self): self.root = None def createTree(self,treeDict,treeNod..