[๋ฐฑ์ค€] 11403 ๊ฒฝ๋กœ ์ฐพ๊ธฐ - ๊ทธ๋ž˜ํ”„, DFS

2024. 8. 17. 17:38ยท๐Ÿ’ป Algorithms/๋ฐฑ์ค€

[ ๋ฌธ์ œ๋งํฌ ]

https://www.acmicpc.net/problem/11403

 

๐Ÿšฉ ์กฐ๊ฑด

  1. ๊ฐ€์ค‘์น˜ ์—†๋Š” ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ G๊ฐ€ ์ฃผ์–ด์ง
  2. (i,j)์— ๋Œ€ํ•ด, i์—์„œ j๋กœ ๊ฐ€๋Š” ๊ธธ์ด๊ฐ€ ์–‘์ˆ˜์ธ ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋Š”์ง€ ๊ตฌํ•ด๋ผ
  3. ๊ฒฝ๋กœ๊ฐ€ ์žˆ์œผ๋ฉด 1, ์—†์œผ๋ฉด 0์œผ๋กœ + ์ธ์ ‘ํ–‰๋ ฌ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ 

 

 

๐Ÿšฉ ์ ‘๊ทผ

  • ๊ทธ๋ž˜ํ”„ -> vector๋กœ ๊ตฌํ˜„
  • ์žฌ๊ท€์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜์ž (ex. 4๋ฒˆ ๊ฐˆ ์ˆ˜ ์žˆ์œผ๋ฉด 4๋ฒˆ์ด ๊ฐˆ ์ˆ˜ ์žˆ๋Š” 1,2๋ฒˆ๋„ ๊ฐˆ ์ˆ˜ ์žˆ๊ณ  1,2๋ฒˆ์ด ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ...)
    ๊ทผ๋ฐ ์ด๊ฑธ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜์ง€? ์žฌ๊ท€์˜ ํƒˆ์ถœ ์กฐ๊ฑด์„ ๋ชจ๋ฅด๊ฒ ๋‹ค

 

 

๐Ÿšฉ ์‹œํ–‰์ฐฉ์˜ค

  • vector<int> vec[100] != vector<vector<int>> vec; 
vector<int> v1[100];		//vector<int> 100๊ฐœ๋ฅผ ๊ฐ€์ง€๋Š” ๋ฐฐ์—ด
v1[0].push_back(1);

vector<vector <int>> v2;	//vector<int>๋ฅผ ์š”์†Œ๋กœ ๊ฐ€์ง€๋Š” ๊ฐ€๋ณ€์ ์ธ ๋ฐฐ์—ด
v2.push_back(vector<int>());	//์ฒ˜์Œ์—๋Š” ๋นˆ ๋ฐฐ์—ด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ ํ•„์š”
v2[0].push_back(1);
  • ์žฌ๊ท€์ ์œผ๋กœ ๊ตฌํ˜„ = DFS
    • DFS์— ๋Œ€ํ•ด์„œ ์ข€ ๋” ๊ณต๋ถ€ํ•˜์ž ([์ฐธ๊ณ ] https://m42-orion.tistory.com/63)

(1) DFS ์ฝ”๋“œ (2) 0๋ฒˆ ๋…ธ๋“œ์— ๋Œ€ํ•œ DFS ๊ณผ์ •

 

 

๐Ÿ’ป ์ฝ”๋“œ (C++)

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

vector<vector<int>> vec;
vector<int> temp;
int visit[101];

void dfs(int x){
    for(int i=0;i<vec[x].size();i++){
        if(!visit[vec[x][i]]){
            visit[vec[x][i]]=1;
            dfs(vec[x][i]);
        }
    }
}

void print(int k){
    for(int i=0;i<k;i++){
        cout<<visit[i]<<" ";
    }
    cout<<"\n";
}

void clean(int k){
    for(int i=0;i<k;i++){
        visit[i]=0;
    }
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    int N, x;
    cin>>N;
    for(int i=0;i<N;i++){
        for(int j=0;j<N;j++){
            cin>>x;
            if(x==1) temp.push_back(j);
        }
        vec.push_back(temp);
        temp.clear();
    }
    
    for(int i=0;i<N;i++){
        dfs(i);
        
        print(N);
        clean(N);
    }
}

 

'๐Ÿ’ป Algorithms > ๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€] 2164 ์นด๋“œ2 - ํ  (0) 2024.08.19
[๋ฐฑ์ค€] 1992 ์ฟผ๋“œํŠธ๋ฆฌ - ์žฌ๊ท€ํ•จ์ˆ˜  (0) 2024.08.19
[๋ฐฑ์ค€] 1927 ์ตœ์†Œ ํž™ - ์šฐ์„ ์ˆœ์œ„ ํ  (0) 2024.08.14
[๋ฐฑ์ค€] 11780 ํ”Œ๋กœ์ด๋“œ2 - ํ”Œ๋กœ์ด๋“œ ๊ฒฝ๋กœ๋ณต์›  (0) 2024.08.04
[๋ฐฑ์ค€] 11404 ํ”Œ๋กœ์ด๋“œ - ํ”Œ๋กœ์ด๋“œ  (0) 2024.08.04
'๐Ÿ’ป Algorithms/๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] 2164 ์นด๋“œ2 - ํ
  • [๋ฐฑ์ค€] 1992 ์ฟผ๋“œํŠธ๋ฆฌ - ์žฌ๊ท€ํ•จ์ˆ˜
  • [๋ฐฑ์ค€] 1927 ์ตœ์†Œ ํž™ - ์šฐ์„ ์ˆœ์œ„ ํ
  • [๋ฐฑ์ค€] 11780 ํ”Œ๋กœ์ด๋“œ2 - ํ”Œ๋กœ์ด๋“œ ๊ฒฝ๋กœ๋ณต์›
์ ๋„
์ ๋„
  • ์ ๋„
    ๋„์ 
    ์ ๋„
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (30)
      • ๐Ÿ’ป Algorithms (28)
        • ๋ฐฑ์ค€ (22)
        • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (6)
      • ๐Ÿ”Ž Deep Learning (0)
      • ๐Ÿ’ฅ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… (1)
      • ๐Ÿ•น Unity (1)
      • ๐Ÿฅ” ์ž‰ํ…… (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

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

    • Blog
    • Github
    • Velog
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
์ ๋„
[๋ฐฑ์ค€] 11403 ๊ฒฝ๋กœ ์ฐพ๊ธฐ - ๊ทธ๋ž˜ํ”„, DFS
์ƒ๋‹จ์œผ๋กœ

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