Skip to content

Commit 08afb52

Browse files
committed
[level 3] Title: ์ˆœ์œ„, Time: 8.80 ms, Memory: 36.4 MB -BaekjoonHub
1 parent 58372ee commit 08afb52

2 files changed

Lines changed: 96 additions & 0 deletions

File tree

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# [level 3] ์ˆœ์œ„ - 49191
2+
3+
[๋ฌธ์ œ ๋งํฌ](https://school.programmers.co.kr/learn/courses/30/lessons/49191)
4+
5+
### ์„ฑ๋Šฅ ์š”์•ฝ
6+
7+
๋ฉ”๋ชจ๋ฆฌ: 36.4 MB, ์‹œ๊ฐ„: 8.80 ms
8+
9+
### ๊ตฌ๋ถ„
10+
11+
์ฝ”๋”ฉํ…Œ์ŠคํŠธโ€…์—ฐ์Šต > ๊ทธ๋ž˜ํ”„
12+
13+
### ์ฑ„์ ๊ฒฐ๊ณผ
14+
15+
์ •ํ™•์„ฑ: 100.0<br/>ํ•ฉ๊ณ„: 100.0 / 100.0
16+
17+
### ์ œ์ถœ ์ผ์ž
18+
19+
2026๋…„ 05์›” 12์ผ 14:43:12
20+
21+
### ๋ฌธ์ œ ์„ค๋ช…
22+
23+
<p>n๋ช…์˜ ๊ถŒํˆฌ์„ ์ˆ˜๊ฐ€ ๊ถŒํˆฌ ๋Œ€ํšŒ์— ์ฐธ์—ฌํ–ˆ๊ณ  ๊ฐ๊ฐ 1๋ฒˆ๋ถ€ํ„ฐ n๋ฒˆ๊นŒ์ง€ ๋ฒˆํ˜ธ๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๊ถŒํˆฌ ๊ฒฝ๊ธฐ๋Š” 1๋Œ€1 ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰์ด ๋˜๊ณ , ๋งŒ์•ฝ A ์„ ์ˆ˜๊ฐ€ B ์„ ์ˆ˜๋ณด๋‹ค ์‹ค๋ ฅ์ด ์ข‹๋‹ค๋ฉด A ์„ ์ˆ˜๋Š” B ์„ ์ˆ˜๋ฅผ ํ•ญ์ƒ ์ด๊น๋‹ˆ๋‹ค. ์‹ฌํŒ์€ ์ฃผ์–ด์ง„ ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ง€๊ณ  ์„ ์ˆ˜๋“ค์˜ ์ˆœ์œ„๋ฅผ ๋งค๊ธฐ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ช‡๋ช‡ ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ๋ถ„์‹คํ•˜์—ฌ ์ •ํ™•ํ•˜๊ฒŒ ์ˆœ์œ„๋ฅผ ๋งค๊ธธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.</p>
24+
25+
<p>์„ ์ˆ˜์˜ ์ˆ˜ n, ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ๋‹ด์€ 2์ฐจ์› ๋ฐฐ์—ด results๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ ์ •ํ™•ํ•˜๊ฒŒ ์ˆœ์œ„๋ฅผ ๋งค๊ธธ ์ˆ˜ ์žˆ๋Š” ์„ ์ˆ˜์˜ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.</p>
26+
27+
<h5>์ œํ•œ์‚ฌํ•ญ</h5>
28+
29+
<ul>
30+
<li>์„ ์ˆ˜์˜ ์ˆ˜๋Š” 1๋ช… ์ด์ƒ 100๋ช… ์ดํ•˜์ž…๋‹ˆ๋‹ค.</li>
31+
<li>๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๋Š” 1๊ฐœ ์ด์ƒ 4,500๊ฐœ ์ดํ•˜์ž…๋‹ˆ๋‹ค.</li>
32+
<li>results ๋ฐฐ์—ด ๊ฐ ํ–‰ [A, B]๋Š” A ์„ ์ˆ˜๊ฐ€ B ์„ ์ˆ˜๋ฅผ ์ด๊ฒผ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.</li>
33+
<li>๋ชจ๋“  ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ์—๋Š” ๋ชจ์ˆœ์ด ์—†์Šต๋‹ˆ๋‹ค.</li>
34+
</ul>
35+
36+
<h5>์ž…์ถœ๋ ฅ ์˜ˆ</h5>
37+
<table class="table">
38+
<thead><tr>
39+
<th>n</th>
40+
<th>results</th>
41+
<th>return</th>
42+
</tr>
43+
</thead>
44+
<tbody><tr>
45+
<td>5</td>
46+
<td>[[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]]</td>
47+
<td>2</td>
48+
</tr>
49+
</tbody>
50+
</table>
51+
<h5>์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…</h5>
52+
53+
<p>2๋ฒˆ ์„ ์ˆ˜๋Š” [1, 3, 4] ์„ ์ˆ˜์—๊ฒŒ ํŒจ๋ฐฐํ–ˆ๊ณ  5๋ฒˆ ์„ ์ˆ˜์—๊ฒŒ ์Šน๋ฆฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— 4์œ„์ž…๋‹ˆ๋‹ค.<br>
54+
5๋ฒˆ ์„ ์ˆ˜๋Š” 4์œ„์ธ 2๋ฒˆ ์„ ์ˆ˜์—๊ฒŒ ํŒจ๋ฐฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— 5์œ„์ž…๋‹ˆ๋‹ค.</p>
55+
56+
57+
> ์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต, https://school.programmers.co.kr/learn/challenges
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/**
2+
* ๊ถŒํˆฌ ๋Œ€ํšŒ: 1๋Œ€1 ๋ฐฉ์‹, A๊ฐ€ B๋ณด๋‹ค ์‹ค๋ ฅ ์ข‹์œผ๋ฉด ํ•ญ์ƒ ์ด๊น€
3+
* ๋ช‡๋ช‡ ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ๋ถ„์‹คํ•ด์„œ ์ •ํ™•ํžˆ ์ˆœ์œ„๋ฅผ ๋งค๊ธธ ์ˆ˜ ์—†์Œ
4+
*
5+
* ์„ ์ˆ˜์˜ ์ˆ˜ n, ๊ฒฝ๊ธฐ๊ฒฐ๊ณผ 2์ฐจ์›๋ฐฐ์—ด results ์ฃผ์–ด์ง
6+
* ์ •ํ™•ํ•˜๊ฒŒ ์ˆœ์œ„๋ฅผ ๋งค๊ธธ ์ˆ˜ ์žˆ๋Š” ์„ ์ˆ˜์˜ ์ˆ˜๋ฅผ return
7+
*
8+
**/
9+
10+
function solution(n, results) {
11+
const graph = Array.from({ length: n + 1 }, () => Array(n + 1).fill(false));
12+
13+
for (const [winner, loser] of results) {
14+
graph[winner][loser] = true;
15+
}
16+
17+
for (let i = 1; i <= n; i++) {
18+
for (let j = 1; j <= n; j++) {
19+
for (let k = 1; k <= n; k++) {
20+
if (graph[j][i] && graph[i][k]) {
21+
graph[j][k] = true;
22+
}
23+
}
24+
}
25+
}
26+
27+
let answer = 0;
28+
29+
for (let i = 1; i <= n; i++) {
30+
let count = 0;
31+
for (let j = 1; j <= n; j++) {
32+
if (graph[i][j] || graph[j][i]) {
33+
count++;
34+
}
35+
}
36+
if (count === n - 1) answer++;
37+
}
38+
return answer;
39+
}

0 commit comments

Comments
ย (0)