본문 바로가기
📊 Algorithm/BOJ

아니 골드로 떨어졌다!!!!!! - 15681 트리와 쿼리

by 정람지 2024. 6. 17.

아니..?!

솔브닥 디코에서

내 이름 색깔이 노란색..?!?!

 

헐레벌떡

내 클래스점수가 없어졌다!!!

딱맞춰서 푼 꼼수가 이렇게 복수를??

아니 한문제 뭐지???

 

🌳 클래스 5 🌳 밀기

목표는 11문제레벨순으로 쉬운 것만 공략한다가오란 없다 사실 진짜 속셈은 플래티넘 진입을 위한 클래스 꿀점수이번 방학까지는 꼭1 / 11 27172번: 수 나누기 게임《보드게임컵》을 준비하다 지

junggoldchae-coding.tistory.com

아니!!!!!!별자리없어졌다!!!!!!!!!!

 

참을수없어

내일 코테인데 이런 불길한 징조라니

맞추고자야겠어


 

가오떨어지게 젤 쉬운 문제 풀 거다

# 15681

트리와 쿼리

🥇 G5

 

 

문제에 답이 있다~ 힌트에 다 나와있음

from sys import stdin

# 정점의 수 N 루트의 번호 R 쿼리의 수 Q
N,R,Q = map(int,stdin.readline().split())
near_list = [[] for _ in range(N+1)]
for _ in range(N-1) :
    U,V = map(int,stdin.readline().split())
    near_list[U].append(V)
    near_list[V].append(U)

child_list = [[] for _ in range(N+1)]
parent_list = [[] for _ in range(N+1)]
# R 루트인 트리 구성 - 정점별 부모/자식 구하기
def makeTree(currentNode, parent) :
    for Node in near_list[currentNode] :
        if Node != parent:
            child_list[currentNode].append(Node)
            parent_list[Node] = currentNode
            makeTree(Node, currentNode)
makeTree(R,-1)

SubtreeNode_size = [[] for _ in range(N+1)]
# 해당 정점을 루트로 하는 서브트리의 정점 개수 구하기
def countSubtreeNodes(currentNode) :
    SubtreeNode_size[currentNode] = 1 
    for Node in child_list[currentNode]:
        countSubtreeNodes(Node)
        SubtreeNode_size[currentNode] += SubtreeNode_size[Node]
    return SubtreeNode_size[currentNode]

for _ in range(Q):
    U = int(stdin.readline())
    print(countSubtreeNodes(U))

 

이라고 하려고 했는데

recursionError

import sys
sys.setrecursionlimit(100000)

했더니 메모리 초과

는 혹시 하고 파이썬3로..?

는recursionError

는 앗싸리아뵹

맨 마지막 서브트리 정점 구할 때 이전에 구했던 값 있으면 그거 출력하게 하면 되는군


돌아왔구나 나의 작고 소중한 플래티넘...!

디코에도 바로 반영되는 거 신기하다