250x250
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
- openai api
- 로이커바트
- iles dHyeres
- 코딩
- 군대코딩
- auto code review
- 시뮬레이션
- C++
- 군인
- 군대
- 피르스트 자전거
- 오리스프
- 백준
- 융프라우 스위스 패스
- 대학생
- 백준으로 C++ 공부
- 프랑스 남부 섬
- C++ 공부하기
- 16236 c++
- 백준 C++
- 그린델발트 캠핑장
- 24524
- porquerolles
- Replit
- 로이커바트 숙소
- 1654
- 알고리즘
- 백준으로 c++ 공부하기
- C++ 공부
- 그린델발트 자전거
Archives
- Today
- Total
기억보다는 기록을 해볼까
C++ 공부 21일차 (11047, 11279, 11724) 본문
728x90
1주일 간의 휴가를 끝내고 다시 공부 모드로 돌입해야겠다
오늘 공부한 백준 (11047, 11279, 11724)
11724 연결요소의 개수
DFS, BFS를 제대로 구현할 줄 알면 간단한 문제이다
문제는 내가 제대로 할 줄을 모르는 것이다.
두고두고 잘 봐야하는 기본 문제이다.
#include <iostream>
#include <queue>
using namespace std;
const int MAXN = 1001;
bool map[MAXN][MAXN] = {0, };
bool vst[MAXN];
int n, m;
int cnt = 0;
void dfs(int num) {
vst[num] = true;
for(int i = 1; i <= n; i++) {
if(map[num][i] && !vst[i])
dfs(i);
}
}
int main() {
cin >> n >> m;
for(int i = 0; i < m; i++) {
int a, b;
cin >> a >> b;
map[a][b] = true;
map[b][a] = true;
}
for(int i = 1; i <= n; i++) {
if(!vst[i]) {
cnt++;
dfs(i);
}
}
cout << cnt;
}
void bfs(int num){
queue<int> q;
q.push(num);
vst[num] = true;
while(!q.empty()){
int curr = q.front();
q.pop();
for(int i=0; i<map[curr].size(); i++){
int nxt = map[curr][i];
if(!vst[nxt]){
q.push(nxt);
vst[nxt] = true;
}
}
}
}
728x90
'백준으로 C++ 공부하기' 카테고리의 다른 글
C++ 23일차 (1697, 1992, 2178) (0) | 2021.11.24 |
---|---|
C++ 공부 22일차 (18870, 1260) (0) | 2021.11.21 |
C++ 공부 20일차 (1780) (0) | 2021.11.11 |
C++ 공부 19일차 (5525) (0) | 2021.11.10 |
C++ 공부 18일차 (1012, 1541, 5525 (미완성)) (0) | 2021.11.10 |
Comments