본문 바로가기
알고리즘

백준_5567_결혼식

by 매화of사군자 2020. 1. 28.

https://www.acmicpc.net/problem/5567

 

5567번: 결혼식

문제 상근이는 자신의 결혼식에 학교 동기 중 자신의 친구와 친구의 친구를 초대하기로 했다. 상근이의 동기는 모두 N명이고, 이 학생들의 학번은 모두 1부터 N까지이다. 상근이의 학번은 1이다. 상근이는 동기들의 친구 관계를 모두 조사한 리스트를 가지고 있다. 이 리스트를 바탕으로 결혼식에 초대할 사람의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이의 동기의 수 n (2 ≤ n ≤ 500)이 주어진다. 둘째 줄에는 리스트의 길이 m (1 ≤ m

www.acmicpc.net

해결 방법

> 이 문제는 프로그래밍 언어로 그래프를 그릴수 있는지 없는지 물어보는 문제이기 때문에 그래프를 그린다.

> 그래프에 접근하는 방법을 공부한다.

 

코드

더보기

import sys

 

input = sys.stdin.readline

 

num_friends = int(input())

num_list = int(input())

 

friend_network = dict()

 

for i in range(1, num_friends + 1):

    friend_network[i] = set()

 

for i in range(num_list):

    a, b = map(intinput().split())

    friend_network[a].add(b)

    friend_network[b].add(a)

 

#하객 수를 계산하는 부분

f_set = set()

 

#내 친구들

f_set.update(friend_network[1])

 

#친구의 친구들

for i in friend_network[1]:

    f_set.update(friend_network[i])

 

#자기자신(1)을 빼야하므로 -1을 해준다.

print(len(f_set) - 1)

'알고리즘' 카테고리의 다른 글

백준_1068_트리(해결 못함)  (0) 2020.01.29
백준_1507_궁금한 민호  (0) 2020.01.28
백준_1671_상어의 저녁식사  (0) 2020.01.26
백준_6086_최대 유량  (0) 2020.01.23
백준_1671_상어의 저녁식사(못풀었음)  (0) 2020.01.22

댓글