[๋ฐฑ์ค€/C++] 14716๋ฒˆ ํ˜„์ˆ˜๋ง‰

2022. 7. 16. 22:39ยทPS/C++
๋ฐ˜์‘ํ˜•

๋ฐฑ์ค€
14716๋ฒˆ ํ˜„์ˆ˜๋ง‰
14716๋ฒˆ ํ˜„์ˆ˜๋ง‰


๐Ÿค”๋ฌธ์ œ ์ดํ•ด

์ƒ, ํ•˜, ์ขŒ, ์šฐ, ๋Œ€๊ฐ์„  4๋ฐฉํ–ฅ์œผ๋กœ ์ธ์ ‘ํ•œ 1์„ ํ•œ ๊ธ€์ž๋กœ ์ทจ๊ธ‰ํ•˜์—ฌ ๊ธ€์ž๊ฐ€ ๋ช‡๊ฐœ ์žˆ๋Š”์ง€ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.


๐Ÿ”ฅํ’€์ด๐Ÿ”ฅ

์ •๋ง ๊ฐ„๋‹จํ•œ BFS ๋ฌธ์ œ์ธ๋ฐ ๋ฐฉํ–ฅ์ด 4๊ฐœ ๋” ์ถ”๊ฐ€๋œ ๋ฒ„์ „์ด๋‹ค.

๋ฐฉํ–ฅ์„ ํ‘œํ˜„ํ•ด์ฃผ๋Š” dx์™€ dy๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ ์–ธํ•ด์„œ ์˜ค๋ฅธ์ชฝ, ์™ผ์ชฝ, ์œ„์ชฝ, ์•„๋ž˜์ชฝ, ์˜ค๋ฅธ์ชฝ ์•„๋ž˜, ์™ผ์ชฝ ์•„๋ž˜, ์˜ค๋ฅธ์ชฝ ์œ„, ์™ผ์ชฝ ์œ„๋ฅผ ๋‚˜ํƒ€๋‚ด์ฃผ์—ˆ๋‹ค.

 

int dx[8] = { 1, -1, 0 , 0 , 1, -1, 1, -1};
int dy[8] = { 0, 0, 1, -1, 1, -1, -1, 1};

#include <iostream>
#include <queue>
using namespace std;

int m, n;
int map[251][251];
bool visited[251][251];
queue<pair<int,int>> q;

int dx[8] = { 1, -1, 0 , 0 , 1, -1, 1, -1};
int dy[8] = { 0, 0, 1, -1, 1, -1, -1, 1};

bool isValid(int y, int x){
    return x >=0 && y >=0 && x < n && y < m && !visited[y][x];
}

void BFS(){
    while(!q.empty()){
        int y = q.front().first;
        int x = q.front().second;
        q.pop();

        for(int i=0; i < 8; i++){
            int mv_y = y + dy[i];
            int mv_x = x + dx[i];
            if( isValid(mv_y, mv_x) && map[mv_y][mv_x] == 1) {
                q.push({mv_y, mv_x});
                visited[mv_y][mv_x]= true;
            }
        }
    }
}

int main (){
    cin.tie(nullptr);
    cout.tie(nullptr);
    ios::sync_with_stdio(false);

    cin >> m >> n;
    for(int i=0; i < m; i++){
        for(int j=0;j < n; j++){
            cin>> map[i][j];
        }
    }
    int cnt =0;
    for(int i=0; i < m; i++){
        for(int j=0;j < n; j++){
            if(map[i][j] == 1 && !visited[i][j] ) {
                visited[i][j] = true;
                q.push({i, j});
                BFS();
                cnt++;
            }
        }
    }
    cout << cnt;
}

 

728x90
๋ฐ˜์‘ํ˜•

'PS > C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€/C++] 11057๋ฒˆ ์˜ค๋ฅด๋ง‰ ์ˆ˜  (0) 2022.07.18
[๋ฐฑ์ค€/C++] 1939๋ฒˆ ์ค‘๋Ÿ‰์ œํ•œ  (0) 2022.07.18
[๋ฐฑ์ค€/C++] 1149๋ฒˆ RGB๊ฑฐ๋ฆฌ  (0) 2022.07.16
[๋ฐฑ์ค€/C++] 18352 ํŠน์ •๊ฑฐ๋ฆฌ์˜ ๋„์‹œ ์ฐพ๊ธฐ  (0) 2022.07.16
[๋ฐฑ์ค€/C++] 2234๋ฒˆ ์„ฑ๊ณฝ  (0) 2022.07.16
'PS/C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€/C++] 11057๋ฒˆ ์˜ค๋ฅด๋ง‰ ์ˆ˜
  • [๋ฐฑ์ค€/C++] 1939๋ฒˆ ์ค‘๋Ÿ‰์ œํ•œ
  • [๋ฐฑ์ค€/C++] 1149๋ฒˆ RGB๊ฑฐ๋ฆฌ
  • [๋ฐฑ์ค€/C++] 18352 ํŠน์ •๊ฑฐ๋ฆฌ์˜ ๋„์‹œ ์ฐพ๊ธฐ
yulee_to
yulee_to
  • yulee_to
    yulee
    yulee_to
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์ „์ฒด ๊ธ€ (113) N
      • CS (2)
        • OS (0)
        • DB (0)
        • Network (2)
      • Develop (21)
        • Spring (9)
        • Java (12)
        • Python (0)
        • Algorithm (0)
        • ๊ธฐํƒ€ (0)
      • PS (39)
        • C++ (39)
        • Java (0)
      • Book (39)
        • ์ž๋ฐ”์˜ ์‹  (32)
        • ์Šคํ”„๋ง ์ž…๋ฌธ์„ ์œ„ํ•œ ์ž๋ฐ” ๊ฐ์ฒด ์ง€ํ–ฅ์˜ ์›๋ฆฌ์™€ ์ดํ•ด (7)
      • ETC (4)
        • Blog (3)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    Java
    ์Šคํ„ฐ๋””
    TiL
    ๊ฐ์ฒด์ง€ํ–ฅ
    DP
    ์ž๋ฐ”์˜ ์‹ 
    ์ž๋ฐ”
    boj
    ๋ฌธ์ œํ’€์ด
    ์œ„์ƒ์ •๋ ฌ
    ๋ฐฑ์ค€
    ์—์Šค๋„ท์‹œ์Šคํ…œ
    EC2
    Spring
    GodOfJava
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    1์ผ1๋ฐฑ์ค€
    ๋ฉ€ํ‹ฐ์บ ํผ์Šค
    ์Šคํ”„๋ง ์ž…๋ฌธ
    C++
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
yulee_to
[๋ฐฑ์ค€/C++] 14716๋ฒˆ ํ˜„์ˆ˜๋ง‰
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”