티스토리 뷰

알고리즘/BOJ

[BOJ-5567] 결혼식

개발하는 후딘 2020. 3. 5. 00:02
728x90
반응형

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

 

5567번: 결혼식

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

www.acmicpc.net


[ 코드 ]

# -*- coding: utf-8 -*-
import sys
from collections import deque
input= sys.stdin.readline

q=deque()
n,m=0,0
connections=None
visited=None

def bfs():
    global visited, connections
    invite_cnt=0 #초대횟수
    set_sg=set(connections[0])|set([1]) #상근이와 상근이 친구들
    
    while q:
        now= q.popleft()
        
        #아직 방문하지 않았다면
        if not visited[now-1]:
            visited[now-1]=True #방문

            #now의 친구들중.. 상근이와 친구들(set_sg)와 겹치는 것이 있는가?
            #now의 친구들중에서 상근이(1)가 있거나, 상근이의친구가 있는가?
            set_now=set(connections[now-1])
            isSGFriend= set_now & set_sg
            if len(isSGFriend)>0:
                invite_cnt+=1
                
            for f in connections[now-1]:
                if not visited[f-1]:
                    q.append(f)

    return invite_cnt
    
def main():
    global n,m, connections, visited
    n=int(input()) #상근이 동기수(노드개수)
    m=int(input()) #연결리스트 길이(간선개수)
    connections=[ [] for _ in range(n)]
    
    #친구 연결관계 개수
    for _ in range(m):
        a,b= map(int, input().split())
        connections[a-1].append(b)
        connections[b-1].append(a)

    #상근이(1)를 제외한 나머지는 방문을 안한상태로 둔다.
    visited= [ False if num>1 else True for num in range(1,n+1)] #방문리스트

    #상근이 친구를 큐에 먼저 넣는다.
    for f in connections[0]:
        q.append(f)     
    print(bfs())

if __name__=='__main__':
    main()
728x90
반응형

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

[BOJ-2667] 단지번호 붙이기  (0) 2020.03.05
[BOJ-7576] 토마토  (0) 2020.03.05
[BOJ-2146] 다리만들기  (0) 2020.03.03
[BOJ-2606] 바이러스  (0) 2020.03.02
[BOJ-11066] 파일합치기  (0) 2020.03.02
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함