Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- minmax
- 파이썬컨벤션
- 이코테
- 화살표함수
- 우선순위큐
- Arecode
- Spring
- major gc
- 2606
- BFS
- JWT
- React
- pep8
- 단지번호붙이기
- MSSQL
- 파이썬스럽게
- 미로탐색
- __name__
- 미로탈출
- 삼성소프트웨어
- 2667
- heapq
- WebMvcConfigurer
- 2178
- 백준
- setviewname
- dfs
- addAttribute
- 음료수얼려먹기
- SWEA
Archives
- Today
- Total
하루하루는 성실하게 인생 전체는 되는대로
[백준] 2606 - 바이러스 본문
from collections import deque
n = int(input())
m = int(input())
com = {i:[] for i in range(1, n+1)}
for i in range(m):
x, y = map(int, input().split())
com[x].append(y)
com[y].append(x)
def bfs(x):
visit=[]
que = deque()
que.append(x)
while que:
x = que.popleft()
visit.append(x)
for i in com[x]:
if i in visit:
continue
if i in que:
continue
que.append(i)
print (len(visit)-1)
bfs(1)
- 풀이 평가 : 30분 넘게 소요해서 풀이 완료!
- 풀이 핵심 아이디어 :
- 딕셔너리 사용해서 각 노드의 연결부를 모두 표시
⇒ com = {i:[] for i in range(1, n+1)} → com[x].append(y), com[y].append(x) - visit 함수로 방문기록 표시
- 딕셔너리 사용해서 각 노드의 연결부를 모두 표시
- 풀면서 헷갈렸던 점 :
- while 안에 for문 내부에서 (if 동반한) continue사용시 for문 내에서 무시되는지??
⇒ YES! for위 i가 continue되면 그 다음 i로 for문 내의 처음 문장으로 돌아감! - visit에도 없고 que에도 없는 놈들만 que에 넣어야 한다! 둘 다 if로 체크하기!
- while 안에 for문 내부에서 (if 동반한) continue사용시 for문 내에서 무시되는지??
'알고리즘 Archive' 카테고리의 다른 글
[백준] 1697 - 숨바꼭질 (0) | 2021.03.24 |
---|---|
[백준] 2178 - 미로 탐색 (0) | 2021.03.24 |
[백준] 2667 - 단지번호붙이기 (0) | 2021.03.24 |
[백준] 1260 - dfs와 bfs (미완-다시풀기) (0) | 2021.03.24 |
BFS - 미로 탈출 (0) | 2021.03.24 |
Comments