λ¬Έμ
μ½λ
#include <iostream>
#include <queue>
using namespace std;
int M,N;
int map[251][251];
int visited[251][251];
int dx[8]={0,0,-1,1,-1,-1,1,1}; //μ ν μ’ μ° λκ°μ
int dy[8]={-1,1,0,0,-1,1,-1,1};
int ans=0;
void bfs(int x,int y){
ans++;
queue<pair<int,int>>q;
q.push({x,y});
visited[x][y]=1;
while(!q.empty()){
int x=q.front().first;
int y=q.front().second;
q.pop();
for(int i=0; i<8; i++){
int nx=x+dx[i];
int ny=y+dy[i];
if(nx>=0&&nx<M&&ny>=0&&ny<N){ //λ²μλ₯Ό λμ§ μμλ
if(map[nx][ny]==1&&!visited[nx][ny]){
visited[nx][ny]=1;
q.push({nx,ny});
}
}
}
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
cin>>M>>N;
for(int i=0; i<M; i++){
for(int k=0; k<N; k++){
cin>>map[i][k];
}
}
for(int i=0; i<M; i++){
for(int k=0; k<N; k++){
if(map[i][k]==1&&!visited[i][k]) bfs(i,k);
}
}
cout<<ans;
}
'Algorithm π§π»βπ» > λ°±μ€(BOJ)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€,c++] 1476λ² - λ μ§ κ³μ° (0) | 2021.11.14 |
---|---|
[λ°±μ€,c++] 14724λ² - κ΄λ¦¬μλ λꡬ? (0) | 2021.11.11 |
[λ°±μ€,c++] 14720λ² - μ°μ μΆμ (0) | 2021.11.11 |
[λ°±μ€,c++] 14698λ² - μ μνλλ μ¬λΌμ μ°κ΅¬μμλ 건μ λνμ¬(Hard) (0) | 2021.11.11 |
[λ°±μ€,c++] 14681λ² - μ¬λΆλ©΄ κ³ λ₯΄κΈ° (0) | 2021.11.11 |
[λ°±μ€,c++] 1463λ² - 1λ‘ λ§λ€κΈ° (0) | 2021.11.11 |
λκΈ