티스토리 뷰
728x90
반응형
https://www.acmicpc.net/problem/5567
[ 코드 ]
# -*- 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
링크
TAG
- IT용어
- 바이트디그리
- Mongoose
- 한달어스
- 미완
- nestjs jest
- gem
- vscode
- TDD
- 한달독서
- 스마트폰중독
- 개발용어
- jest
- 나도 할 수 있다
- nestjs
- 갓생살자
- 클린아키텍쳐
- RDBMS
- git
- Nest.js
- typeORM
- OS
- 습관개선
- 디지털디톡스
- TypeScript
- node.js
- Jekyll
- MySQL
- 참고
- MongoDB
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함