๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”ฅ PS(Problem Solving) ๐Ÿ”ฅ/BOJ

[BOJ] #11403 ๊ฒฝ๋กœ ์ฐพ๊ธฐ

by dar0m! 2019. 10. 13.
์‹œ๊ฐ„ ์ œํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ •๋‹ต ๋น„์œจ
1 ์ดˆ 256 MB 51.358%

 

 

11403๋ฒˆ: ๊ฒฝ๋กœ ์ฐพ๊ธฐ

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

www.acmicpc.net

 

ํ•ด๊ฒฐ๋ฐฉ์•ˆ

๊ฐ ์ •์ ์— ๋Œ€ํ•ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์ •์ ์œผ๋กœ DFS๋กœ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ์ง€๋‚˜๊ฐ”๋‹ค๋ฉด arr[i][j] ๋ฅผ 1๋กœ ๋ฐ”๊พผ๋‹ค. ์ง€๋‚˜๊ฐ€์ง€ ์•Š์•˜๋˜ ์ •์ ์— ๋Œ€ํ•ด์„œ๋งŒ ํƒ์ƒ‰์„ ๊ณ„์† ์ด์–ด๊ฐ„๋‹ค. ๊ฐ ์ •์ ์— ๋Œ€ํ•ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์ •์ ์˜ ์ •๋ณด๋ฅผ ์•Œ๊ณ  ์‹ถ์œผ๋ฏ€๋กœ n ๋ฒˆ ๋ฐ˜๋ณตํ•˜๋ฉด ๋ชจ๋“  ์ •์ ์˜ ์ •๋ณด๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ์‹œ๊ฐ„
2268 KB 0 ms
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
32
33
#include<iostream>
#include<string.h>
#include<vector>
using namespace std;
#define F(x,y,u,p) for(int x = 0; x<u; x++)for(int y = 0; y<p; y++)
int n, arr[105][105];
vector<vector<int>> v;
void dfs(int start, int present) {
    for (auto& e : v[present]) {
        if (arr[start][e]) continue;
        arr[start][e] = 1;
        dfs(start, e);
    }
}
int main() {
    scanf("%d"&n);
    v.resize(n * n);
    int a;
    F(i, j, n, n) {
        scanf("%d"&a);
        if (a) v[i].push_back({ j });
    }
    for (int i = 0; i < n; i++) {
        dfs(i, i);
    }
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}
cs

 

'๐Ÿ”ฅ PS(Problem Solving) ๐Ÿ”ฅ > BOJ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[BOJ] #10026 ์ ๋ก์ƒ‰์•ฝ  (0) 2019.10.13
[BOJ] #1260 DFS์™€ BFS  (0) 2019.10.13
[BOJ] #2589 ๋ณด๋ฌผ์„ฌ  (0) 2019.10.13
[BOJ] #3187 ์–‘์น˜๊ธฐ ๊ฟ  (0) 2019.10.13
[BOJ] #7562 ๋‚˜์ดํŠธ์˜ ์ด๋™  (0) 2019.10.13

๋Œ“๊ธ€