반응형
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
- CRUD
- jenkins
- 백준 등수매기기
- 프로그래머스
- express
- 파이썬데이터분석라이브러리
- 백준
- MongoDB
- 지도자동구축 파이썬
- 백준 전쟁 파이썬
- MySQL완전삭제
- 백준 점프 파이썬
- 소프티어 장애물인식프로그램
- express mongodb
- 등수매기기 파이썬
- 소프티어 지도자동구축
- 백준 전쟁-전투
- 백준 바이러스
- 1987파이썬
- 백준 점프
- 백준 예산
- 백준알파벳파이썬
- 백준 평범한배낭
- 도커 컨테이너
- 파이썬 평범한배낭
- 백준 A->B
- 피아노체조 파이썬
- 백준 피아노체조
- 장애물인식프로그램 파이썬
- 금고털이 파이썬
Archives
- Today
- Total
바위 뚫는중
[BOJ] 백준 11724. 연결 요소의 개수 - BFS/DFS 본문
반응형
연결 요소의 개수
시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율
3 초 | 512 MB | 111997 | 50560 | 33264 | 42.197% |
문제
방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어진다.
출력
첫째 줄에 연결 요소의 개수를 출력한다.
풀이
DFS
n, m = map(int, input().split())
graph = [[]for i in range(n+1)]
for _ in range(m):
a, b = map(int, input().split())
graph[a].append(b)
graph[b].append(a)
visited = [False]*(n+1)
def dfs(start):
visited[start] = True
for i in graph[start]:
if visited[i] == False:
dfs(i)
cnt = 0
for j in range(1, n+1):
if visited[j] == False:
dfs(j)
cnt+=1
print(cnt)
재귀가 역시 젤 간단한 것 같다..
BFS
from collections import deque
n, m = map(int, input().split())
graph = [[]for i in range(n+1)]
for _ in range(m):
a, b = map(int, input().split())
graph[a].append(b)
graph[b].append(a)
visited = [False]*(n+1)
def bfs(start):
q = deque([start])
while q:
pop = q.popleft()
visited[pop] = True # 방 문 처 리
for i in graph[pop]:
if visited[i] == False:
visited[i] = True
q.append(i)
cnt = 0
for j in range(1, n+1):
if visited[j] == False:
bfs(j)
cnt+=1
print(cnt)
일단 큐에 넣기,
큐가 빌때 까지 반복 < pop, pop한거방문처리!, graph[pop]안에 다 탐색해서 방문안한거는 방문처리하고 q에 추가해주기!>
for문으로 방문안한것은 bfs로 방문하여 탐색, 탐색이 끝날때마다 카운트
반응형
'Algorithms > 백준' 카테고리의 다른 글
[BOJ] 백준 1074. Z - 분할정복, 재귀 (0) | 2023.10.11 |
---|---|
[BOJ] 백준 1003. 피보나치 함수 - DP, 실버3 (0) | 2023.10.06 |
[BOJ] 백준 2606. 바이러스 - BFS/DFS, 실버3 (0) | 2023.10.03 |
[BOJ] 백준 1012. 유기농 배추 - BFS/DFS, 실버2 (0) | 2023.09.30 |
[BOJ] 백준 1010. 다리 놓기 - 조합, 실버5 (0) | 2023.09.29 |