19641번 - 중첩 집합 모델
지문이 문제를 정의하는 것보다 DB 모델을 설명하는 데에 집중되어 있어 이해하는 데에 너무 힘들었어서, 문제 푸는 데에 필요한 부분만 PS적인 용어를 사용하여 요약해 보았습니다.
노드 N(<=10만) 개 이하의 트리가 주어집니다. 정점에는 1번부터 N번까지 번호가 매겨져 있고, 이 트리를 다음과 같은 규칙으로 방문해야 합니다.
입력의 첫 번째 줄은 N이고, 두 번째 줄부터 N개의 줄에는 각각 첫 수로 정점 번호가 나오고 이후 -1이 주어지기 전까지 이 정점에 연결된 노드들이 모두 주어집니다. 마지막 줄에는 S가 주어집니다.
이 트리를 위의 규칙으로 방문한 결과를 1번부터 N번까지 차례대로 (노드 번호) (그 노드의 left) (그 노드의 right)로 출력하면 됩니다.
참고로 이 문제와 같이 각 정점을 루트로 하는 서브트리를 구간으로 표현하는 테크닉을 '오일러 투어'라고 하며 보다 어려운 문제들에서 자주 쓰이는 테크닉입니다.
댓글을 작성하려면 로그인해야 합니다.
djm03178 1년 전 1
지문이 문제를 정의하는 것보다 DB 모델을 설명하는 데에 집중되어 있어 이해하는 데에 너무 힘들었어서, 문제 푸는 데에 필요한 부분만 PS적인 용어를 사용하여 요약해 보았습니다.
노드 N(<=10만) 개 이하의 트리가 주어집니다. 정점에는 1번부터 N번까지 번호가 매겨져 있고, 이 트리를 다음과 같은 규칙으로 방문해야 합니다.
입력의 첫 번째 줄은 N이고, 두 번째 줄부터 N개의 줄에는 각각 첫 수로 정점 번호가 나오고 이후 -1이 주어지기 전까지 이 정점에 연결된 노드들이 모두 주어집니다. 마지막 줄에는 S가 주어집니다.
이 트리를 위의 규칙으로 방문한 결과를 1번부터 N번까지 차례대로 (노드 번호) (그 노드의 left) (그 노드의 right)로 출력하면 됩니다.