https://school.programmers.co.kr/learn/courses/30/lessons/49191#
๋ฌธ์ ์ค๋ช
n๋ช ์ ๊ถํฌ์ ์๊ฐ ๊ถํฌ ๋ํ์ ์ฐธ์ฌํ๊ณ ๊ฐ๊ฐ 1๋ฒ๋ถํฐ n๋ฒ๊น์ง ๋ฒํธ๋ฅผ ๋ฐ์์ต๋๋ค. ๊ถํฌ ๊ฒฝ๊ธฐ๋ 1๋1 ๋ฐฉ์์ผ๋ก ์งํ์ด ๋๊ณ , ๋ง์ฝ A ์ ์๊ฐ B ์ ์๋ณด๋ค ์ค๋ ฅ์ด ์ข๋ค๋ฉด A ์ ์๋ B ์ ์๋ฅผ ํญ์ ์ด๊น๋๋ค. ์ฌํ์ ์ฃผ์ด์ง ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ง๊ณ ์ ์๋ค์ ์์๋ฅผ ๋งค๊ธฐ๋ ค ํฉ๋๋ค. ํ์ง๋ง ๋ช๋ช ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ๋ถ์คํ์ฌ ์ ํํ๊ฒ ์์๋ฅผ ๋งค๊ธธ ์ ์์ต๋๋ค.
์ ์์ ์ n, ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ๋ด์ 2์ฐจ์ ๋ฐฐ์ด results๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ ์ ํํ๊ฒ ์์๋ฅผ ๋งค๊ธธ ์ ์๋ ์ ์์ ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- ์ ์์ ์๋ 1๋ช ์ด์ 100๋ช ์ดํ์ ๋๋ค.
- ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๋ 1๊ฐ ์ด์ 4,500๊ฐ ์ดํ์ ๋๋ค.
- results ๋ฐฐ์ด ๊ฐ ํ [A, B]๋ A ์ ์๊ฐ B ์ ์๋ฅผ ์ด๊ฒผ๋ค๋ ์๋ฏธ์ ๋๋ค.
- ๋ชจ๋ ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ์๋ ๋ชจ์์ด ์์ต๋๋ค.
๊ทธ๋ํ๋ ๊ทธ๋ฅ ๋ค bfs๋ dfs๋ก ํ๋ฉด ๋ ใ ฃ๋์ค ์์๋ ์ฌ๋ ๋์ผ๋...๋์ผ ๋....๐ฉ
๊ทธ๋ฅ ์ฝ์งํ๋ค๊ฐ ์ด๋ป๊ฒ ํธ๋ ์ถ์ด์ ์ง๋ฌธ ๊ฒ์ํ ๋ค์ด๊ฐ๋ณด๋
"ํ๋ก์ด๋ ์์ฌ" ์๊ณ ๋ฆฌ์ฆ์ ์จ์ ํ์ด์ผ ํ๋ค๊ณ ํ๋ค.
๊ทธ๊ฒ๋ญ๋ฐ์..,
ํ๋ก์ด๋-์์ ์๊ณ ๋ฆฌ์ฆ์ ๋ณ์ ๊ฐ์ค์น๊ฐ ์์ด๊ฑฐ๋ ์์ธ ๊ฐ์ค ๊ทธ๋ํ์์ ์ต๋จ ๊ฒฝ๋ก๋ค์ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
์๊ณ ๋ฆฌ์ฆ์ ํ ๋ฒ ์ํํ๋ฉด ๋ชจ๋ ๊ผญ์ง์ ์ ๊ฐ์ ์ต๋จ ๊ฒฝ๋ก์ ๊ธธ์ด๋ฅผ ์ฐพ๋๋ค.
๊ทธ๋ฌ๋๊น ๋จ์ํ๊ฒ ๋งํ๋ฉด
a๊ฐ b๋ก ๊ฐ๊ณ , b๋ c๋ก ๊ฐ๋ค๋ฉด ๊ฒฐ๊ณผ์ ์ผ๋ก a๋ c๋ก ๊ฐ๋ ๊ฒ์ด๋ค.
์ด๋ฅผ ์ด์ฉํ ํ์๋ฒ์ด์์
๊ทธ๋์ ์ผ๋จ matrix๋ฅผ ๋ง๋ ํ ์น๋ถ๋ฅผ ์ ์ ์๋ ๊ฒฝ์ฐ๋ค์ ํ๋ก์ด๋ ์์ฌ์ ์ ์ฉํ์ฌ ๋ชจ๋ 1๋ก ๋ฐ๊พผ๋ค.
(a๊ฐ b๋ฅผ ์ด๊ธฐ๊ณ , b๊ฐ c๋ฅผ ์ด๊ฒผ๋ค๋ฉด a๊ฐ c๋ฅผ ์ด๊ธธ ๊ฒ์ด๋ฏ๋ก)
์ดํ ์น๋ถ ํ์๋ฅผ ์ธ์ด์, ์ด n-1๋ฒ์ ์น๋ถ๋ฅผ ํ ์ ์๋ ์์๊ฐ ํ์ ๋๋ฏ๋ก ์ ๋ต ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋ฉด ์์ฑ...!
๋์ ํ์ด
#include <string>
#include <vector>
using namespace std;
bool mat[101][101];
int solution(int n, vector<vector<int>> results) {
int answer = 0;
for(int i=0; i<results.size();i++){
mat[results[i][0]][results[i][1]] = true;
} // ๋งคํธ๋ฆญ์ค ๊ทธ๋ํ ๋ง๋ค๊ธฐ
for(int k=1; k<=n;k++){
for(int i=1; i<=n;i++){
for(int j=1; j<=n; j++){
if(mat[i][k] && mat[k][j]){ // i๊ฐ k๋ฅผ ์ด๊ธฐ๊ณ , k๋ j๋ฅผ ์ด๊ฒผ์ ๋
mat[i][j] =true; // i๋ j๋ฅผ ์ด๊ธธ ๊ฒ์
}
}
}
}
for(int i=1; i<=n;i++){
int count =0;
for(int j=1; j<=n;j++){
if(mat[i][j] || mat[j][i]){ // ์น๋ถ ํ์ ์นด์ดํธ
count++;
}
}
if(count == n-1) answer++; // ์น๋ถ๊ฐ n-1์ผ๋ ์์ ํ์
}
return answer;
}
'๐ ์๊ณ ๋ฆฌ์ฆ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++/PGS] Lv.5 : ๋ฐฉ์ ๊ฐ์ (๊ทธ๋ํ) (0) | 2023.04.12 |
---|---|
[C++/PGS] Lv.3 : N์ผ๋ก ํํ (DP) (0) | 2023.03.03 |
[C++/PGS] Lv.3 : ๊ฐ์ฅ ๋จผ ๋ ธ๋ (๊ทธ๋ํ/bfs) (0) | 2023.03.03 |
[C++/PGS] Lv.2 : H-index (์ ๋ ฌ) (0) | 2023.03.03 |
[C++/PGS] Lv.2 : ์นดํซ (์์ ํ์) (0) | 2023.03.03 |