2533번: 사회망 서비스(SNS) (acmicpc.net)
2533번: 사회망 서비스(SNS)
첫 번째 줄에는 친구 관계 트리의 정점 개수 N이 주어진다. 단, 2 ≤ N ≤ 1,000,000이며, 각 정점은 1부터 N까지 일련번호로 표현된다. 두 번째 줄부터 N-1개의 줄에는 각 줄마다 친구 관계 트리의 에
www.acmicpc.net
DFS
DP를 사용해서 풀어야 하는 문제
내가 얼리 아답터 일때 / 얼리 아답터가 아닐 때를 구분해서 저장
import syssys.setrecursionlimit(10 ** 9)input = sys.stdin.readline
def dfs(v):visited[v]=True #방문처리for next in adj[v]: #인접한 노드 방문if(visited[next]): continue #방문했다면 넘어가기dfs(next) #인접한 다음 노드 dfsdp[v][0]+=dp[next][1] #내가 얼리얼답터가 아니면 자식노드가 얼리어답터여야해dp[v][1]+=min(dp[next]) #내가 얼리얼답터면 자식노드가 뭐든 상관 없어
N = int(input())adj = [[] for _ in range(N+1)]visited=[False]*(N+1)
dp= [[0,1] for _ in range(N+1)]
for i in range(N-1):f,t=map(int,input().split())adj[f].append(t)adj[t].append(f)
dfs(1) #아무 노드에서 시작해도 무방print(min(dp[1]))
'코딩 > 백준' 카테고리의 다른 글
[python] 백준 1669 멍멍이 쓰다듬기 (0) | 2023.04.14 |
---|---|
[python] 백준 4811 알약 (1) | 2023.04.14 |
[python] 백준 5639 이진 검색 트리 (0) | 2023.04.07 |
[python] 백준 15900 나무 탈출 (0) | 2023.04.07 |
[python] 백준 18126 너구리 구구 (0) | 2023.04.07 |