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 ์ ์๋ฅผ ์ด๊ฒผ๋ค๋ ์๋ฏธ์ ๋๋ค.
- ๋ชจ๋ ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ์๋ ๋ชจ์์ด ์์ต๋๋ค.
๋ด ์ฝ๋
ํ๋ก์ด๋ ์์ ์๊ณ ๋ฆฌ์ฆ์ ํตํด ์ ์์ ๊ฐ์ ์ ์ธ ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ์ ์ถํด๋ด๋ ๊ฒ์ด ์ค์ํ ๋ฌธ์ ์๋ค.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(int n, vector<vector<int>> results) {
int answer = 0;
vector<vector<int>> arr(n, vector<int>(n, 0));
// ๊ฒฐ๊ณผ ๊ธฐ๋ก
for(const auto& r : results)
{
arr[r[0]-1][r[1]-1] = 1;
}
// ์ฐ๊ฒฐ๋ ๊ฒฐ๊ณผ ๊ธฐ๋ก(ํ๋ก์ด๋ ์์
)
for(int k = 0; k < n; ++k)
for(int a = 0; a < n; ++a)
for(int b = 0; b < n; ++b)
if(arr[a][k] == 1 && arr[k][b] == 1)
arr[a][b] = 1;
// ๋ค๋ฅธ ๋ชจ๋ ์ ์๋ค๊ณผ ์นํจ ๊ธฐ๋ก์ด ์๋์ง ํ์ธ
for(int k = 0; k < n; ++k)
{
int count = n-1;
for(int i = 0; i < n; ++i)
{
if(arr[k][i] == 1 || arr[i][k] == 1)
--count;
}
if(count == 0)
++answer;
}
return answer;
}
'๐ฅ๏ธ Study Note > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค]level.3 - ๋ฏธ๋ก ํ์ถ ๋ช ๋ น์ด (C++) (0) | 2023.09.07 |
---|---|
[BOJ 11657] ๋ฐฑ์ค ํ์๋จธ์ - C++ ํ์ด (0) | 2023.09.06 |
[ํ๋ก๊ทธ๋๋จธ์ค]level.3 - ํฉ์น ํ์ ์๊ธ (C++) (0) | 2023.09.05 |
[ํ๋ก๊ทธ๋๋จธ์ค]level.2 - ์ด๋ชจํฐ์ฝ ํ ์ธ ํ์ฌ(C++) (1) | 2023.08.28 |
[ํ๋ก๊ทธ๋๋จธ์ค]level.2 - ์คํ์ฑํ ๋ฐฉC++) (0) | 2023.08.25 |