본문 바로가기

코딩 테스트/do it! 알고리즘 코딩테스트100

070 트리 순회 첫번째 코드 먼저 트리를 구성하는 방법에 대해서 적응이 필요할 것 같다.트리를 이전에 class나 __init__이렇게 구성하는데, 해당 과정을 잘 모르겠다.이번 문제는 리스트로 표현하여 어떻게 나오게 할지 재귀로 순서만 생각하면 된다면,트리와 관련된 구성 방법에 대한 공부가 필요하다... 코드는 책을 참고했다!!순서를 헷갈리지 않으면 혼자 풀 수 있을 것 같다. import sys input = sys.stdin.readline n = int(input()) tree = {} for _ in range(n):     root, left, right = input().split()     tree[root] = [left, right] def preOrder(now):     if now == '.': .. 2024. 7. 30.
069 문자열 집합 (미해결) 첫번째 코드 트라이 함수를 이용해서 문자를 정렬하면서 찾아가는 방법을 이용한다.코드는 책을 참고했다. 트라이라는 개념은 이해하겠으나 트리와 관련해서 코드를 작성하는 것이 너무 어렵다.트리는 많이 보이는 문제인데.... import sys input = sys.stdin.readline class Node(object):     def __init__(self, isEnd):         self.isEnd = isEnd         self.childNode = {} class Trie(object):     def __init__(self):         self.parent = Node(None)     def insert(self, string):         nowNode = self.pa.. 2024. 7. 30.
068 트리 첫번째 코드 먼저 tree의 구성을 리스트로 만들어야 하는데, 어떤 리스트로 작성할 것인지, 어떤 부분에 어떻게 들어갈 것인지 (양방향, 단방향)에 대해서 생각보아야 한다. 또한 DFS를 통해 계속해서 파고 들어가는 방법이고 해당 코드는 이전에 공부한 DFS의 코드와 비슷한 형태를 갖고 있다. 트리의 리프 노드를 확인하기 위해 cNode라는 것을 통해 cNode가 0이면 아래 연결된 노드가 없다는 의미로 해석되어 해당 노드는 리프 노드라는 의미이다. 위 과정을 통해 리프 노드의 개수를 확인한다. 아래 코드는 책을 참고하였고, 그래도 앞에 그래프보다는 할 수 있겠다..라는 생각이 든다..(과연이지만..) import sys input = sys.stdin.readline sys.setrecursionlim.. 2024. 7. 25.
067 트리의 부모 찾기 첫번째 코드 DFS를 이용해서 부모 노드를 answer 리스트에 저장해 가는 방법을 이용하여 코드를 작성한다.뭔가 tree를 다룬 문제의 느낌이라기 보다는 DFS 문제를 다루는 느낌이다. import sys input = sys.stdin.readline sys.setrecursionlimit(10**6) n = int(input()) tree = [[] for _ in range(n+1)] visited = [False] * (n+1) answer = [0] * (n+1) for _ in range(1, n):     s, e = map(int, input().split())     tree[s].append(e)     tree[e].append(s) def DFS(x):     visited[x] .. 2024. 7. 25.
065 다리 만들기 2 (미해결) 첫번쨰 코드 이해가 아직 되지 않아 차후에 이해가 된 후 작성 예정링크 2024. 7. 23.
066 불우이웃돕기 (미해결) 첫번쨰 코드 이해가 아직 되지 않아 차후에 이해가 된 후 작성 예정링크 2024. 7. 23.
728x90