ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก์ Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
๋ฌธ์
1๋ฒ ~ n๋ฒ๊น์ง n๋ช ์ ๊ถํฌ์ ์๊ฐ ๊ถํฌ ๋ํ ์ฐธ์ฌํจ. ๊ถํฌ ๊ฒฝ๊ธฐ๋ 1:1 ๋ฐฉ์์ผ๋ก ์งํ,
A ์ ์ ์ค๋ ฅ > B ์ ์ ์ค๋ ฅ → A ์ ์๋ ํญ์ B ์ ์ ์ด๊น
๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ ๊ฐ์ง๊ณ ์์ ๋งค๊ธฐ๋ คํ ๋, ๋ถ์ค๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก ์ ํํ๊ฒ ์์๋ฅผ ๋งค๊ธธ ์ ์๋ ์ ์์ ์ ๊ตฌํ๊ธฐ
์ ํ์ฌํญ
- 1 โฆ ์ ์์ ์ n โฆ 100
- 1 โฆ ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ โฆ 4500
- results[A, B] → A ์ ์๊ฐ B ์ ์ ์ด๊น
- ๋ชจ๋ ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๋ ๋ชจ์ X
์ ์ถ๋ ฅ ์์
| n | results | return |
| 5 | [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] | 2 |
2๋ฒ ์ ์๋ [1, 3, 4] ์ ์์๊ฒ ํจ๋ฐฐํ๊ณ , 5๋ฒ ์ ์์๊ฒ ์น๋ฆฌํ๊ธฐ ๋๋ฌธ์ 4์
5๋ฒ ์ ์๋ 4์์ธ 2๋ฒ ์ ์์๊ฒ ํจ๋ฐฐํ๊ธฐ ๋๋ฌธ์ 5์
์ ๊ทผ ๋ฐฉ๋ฒ
์ฒ์์ ํ๋ก์ด๋-์์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๊ณ์ฐํ๋ ๋ก์ง์ ์๋ชปํด์ ๊ณ์ ์คํจํจใ ใ
ํ๋ก์ด๋-์์ ์๊ณ ๋ฆฌ์ฆ ์ฌ์ฉํด์ A > B์ด๊ณ B > C์ด๋ฉด ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ ๊ตฌํ ์ ์๋ค๋ ๊ฒ์ผ๋ก ์ ๊ทผ
- ์ฃผ์ด์ง ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ(results)๋ก ์ด๊ธด ๊ฒฝ๊ธฐ๋ 1๋ก, ์ง ๊ฒฝ๊ธฐ๋ -1๋ก ํ์
- DP[i][k] = 1 && DP[k][j] = 1 ์ธ ๊ฒฝ์ฐ์๋ง, DP[i][j] =1, DP[j][i] = -1๋ก ํ์
- ์๊ธฐ์์ ์ ์ธํ๊ณ 0์ ํ์๊ฐ 0์ธ ๊ฒฝ์ฐ์๋ง ์ ํํ๊ฒ ์์ ๋งค๊ธธ ์ ์์
1) ์ด๊ธฐ ์ํ
| 1 | 2 | 3 | 4 | 5 | |
| 1 | 0 | 1 | 0 | 0 | 0 |
| 2 | -1 | 0 | -1 | -1 | 1 |
| 3 | 0 | 1 | 0 | -1 | 0 |
| 4 | 0 | 1 | 1 | 0 | 0 |
| 5 | 0 | -1 | 0 | 0 | 0 |
2) k=1
| 1 | 2 | 3 | 4 | 5 | |
| 1 | 0 | 1 | 0 | 0 | 0 |
| 2 | -1 | 0 | -1 | -1 | 1 |
| 3 | 0 | 1 | 0 | -1 | 0 |
| 4 | 0 | 1 | 1 | 0 | 0 |
| 5 | 0 | -1 | 0 | 0 | 0 |
3) k=2
| 1 | 2 | 3 | 4 | 5 | |
| 1 | 0 | 1 | 0 | 0 | 1 |
| 2 | -1 | 0 | -1 | -1 | 1 |
| 3 | 0 | 1 | 0 | -1 | 1 |
| 4 | 0 | 1 | 1 | 0 | 1 |
| 5 | -1 | -1 | -1 | -1 | 0 |
4) k=3, k=4, k=5 ๋์ผ
5) ์ต์ข
| 1 | 2 | 3 | 4 | 5 | |
| 1 | 0 | 1 | 0 | 0 | 1 |
| 2 | -1 | 0 | -1 | -1 | 1 |
| 3 | 0 | 1 | 0 | -1 | 1 |
| 4 | 0 | 1 | 1 | 0 | 1 |
| 5 | -1 | -1 | -1 | -1 | 0 |
6) 0์ด ์๋ ๊ฐฏ์ ์นด์ดํธ
| 1 | 2 | 3 | 4 | 5 | 0์ ๊ฐ์(๋ณธ์ธ ์ ์ธ) | |
| 1 | 0 | 1 | 0 | 0 | 1 | 2 |
| 2 | -1 | 0 | -1 | -1 | 1 | 0 |
| 3 | 0 | 1 | 0 | -1 | 1 | 1 |
| 4 | 0 | 1 | 1 | 0 | 1 | 1 |
| 5 | -1 | -1 | -1 | -1 | 0 | 0 |
์ฝ๋
function solution(n, results) {
let answer = 0;
const dp = Array.from({length: n+1}, () => Array.from({length: n+1}, () => 0));
for(const [a, b] of results) {
dp[a][b] = 1;
dp[b][a] = -1;
}
for(let k=1; k<=n; k++) {
for(let i=1; i<=n; i++) {
for(let j=1; j<=n; j++) {
if(dp[i][k] === 1 && dp[k][j] === 1) {
dp[i][j] = 1;
dp[j][i] = -1;
}
}
}
}
for(let i=1; i<=n; i++) {
let cnt = 0; // 0์ ๊ฐ์
for(let j =1; j<=n; j++) {
if(i!==j && dp[i][j] === 0) {
cnt++;
}
}
if(cnt === 0) answer++;
}
return answer;
}'์๊ณ ๋ฆฌ์ฆ > ์ฝ๋ฉํ ์คํธ ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [ํ๋ก๊ทธ๋๋จธ์ค-258711] ๋๋๊ณผ ๋ง๋ ๊ทธ๋ํ (0) | 2026.05.27 |
|---|---|
| [ํ๋ก๊ทธ๋๋จธ์ค-1843] ์ฌ์น์ฐ์ฐ (0) | 2026.05.02 |
| [ํ๋ก๊ทธ๋๋จธ์ค-42895] N์ผ๋ก ํํ (0) | 2026.04.30 |
| [ํ๋ก๊ทธ๋๋จธ์ค-42860] ์กฐ์ด์คํฑ (0) | 2026.04.27 |
| [๋ฐฑ์ค-35289] ๊ดํธ ๋ฌธ์์ด ์นด๋ (0) | 2026.04.14 |