[백준] 5567 결혼식(Python)

수경·2022년 1월 27일
0

problem solving

목록 보기
32/174

문제

상근이는 자신의 결혼식에 학교 동기 중 자신의 친구와 친구의 친구를 초대하기로 했다. 상근이의 동기는 모두 N명이고, 이 학생들의 학번은 모두 1부터 N까지이다. 상근이의 학번은 1이다.

상근이는 동기들의 친구 관계를 모두 조사한 리스트를 가지고 있다. 이 리스트를 바탕으로 결혼식에 초대할 사람의 수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 상근이의 동기의 수 n (2 ≤ n ≤ 500)이 주어진다. 둘째 줄에는 리스트의 길이 m (1 ≤ m ≤ 10000)이 주어진다. 다음 줄부터 m개 줄에는 친구 관계 ai bi가 주어진다. (1 ≤ ai < bi ≤ n) ai와 bi가 친구라는 뜻이며, bi와 ai도 친구관계이다.

출력

첫째 줄에 상근이의 결혼식에 초대하는 동기의 수를 출력한다.

예제


알고리즘

1. 문제 이해

그래서 동기를 어떤 기준으로 누구까지 초대한다는 건지 문제에 안나와있어서 예제를 보고 많이 고민했다.....

결론은 친구의 친구 까지 초대하면 됨...

제발 이런건 문제에 써주세요 흑흑

코드

from sys import stdin

n = int(stdin.readline().strip())
graph = [[] for _ in range(n + 1)]
visited = [0] * (n + 1)
for _ in range(int(stdin.readline().strip())):
	x, y = map(int, stdin.readline().split())
	graph[y].append(x)
	graph[x].append(y)

cnt = 0
visited[1] = 1
for i in graph[1]:
	if not visited[i]:
		visited[i] = 1
		cnt += 1
	for j in graph[i]:
		if not visited[j]:
			visited[j] = 1
			cnt += 1

print(cnt)	
profile
어쩌다보니 tmi뿐인 블로그😎

0개의 댓글