Skip to content

Commit 2a9248a

Browse files
authored
Merge pull request #38 from 24-Algorithm/minjeong
Minjeong / 7์›” 1์ฃผ์ฐจ / 4๋ฌธ์ œ
2 parents 01de8de + 47702ff commit 2a9248a

5 files changed

+137
-0
lines changed

โ€Ž.DS_Storeโ€Ž

6 KB
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import sys
2+
from collections import deque
3+
4+
input = sys.stdin.readline
5+
6+
# BFS ํ•จ์ˆ˜
7+
def bfs(v, graph, visited):
8+
order = 1
9+
# ํ
10+
queue = deque([v])
11+
12+
while queue: # ํ๊ฐ€ ๋นŒ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต
13+
# ํ์—์„œ ์›์†Œ๋ฅผ ํ•˜๋‚˜ ๋ฝ‘์•„ ์ถœ๋ ฅํ•œ๋‹ค.
14+
node = queue.popleft()
15+
if visited[node] == 0:
16+
visited[node] = order # ๋ฐฉ๋ฌธํ•˜๋ฉด ์ˆœ์„œ ๋„ฃ๊ธฐ
17+
order += 1 # ๋‹ค์Œ ์ˆœ์„œ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ
18+
19+
for u in sorted(graph[node]): # ์˜ค๋ฆ„์ฐจ์ˆœ ์ธ์ ‘๋…ธ๋“œ ๋ฐฉ๋ฌธํ•˜๊ธฐ ์œ„ํ•ด ์ •๋ ฌ
20+
if visited[u] == 0: # ๋ฐฉ๋ฌธ ์•ˆ ํ•œ ๋…ธ๋“œ๋ฉด bfs ํƒ์ƒ‰
21+
queue.append(u)
22+
23+
# ์ดˆ๊ธฐํ™”
24+
n, m, r = map(int, input().strip().split()) # n: ์ •์ ์˜ ์ˆ˜, m: ๊ฐ„์„ ์˜ ์ˆ˜, r: ์‹œ์ž‘ ์ •์ 
25+
graph = [[] for _ in range(n+1)]
26+
visited = [0] * (n+1)
27+
order = 1
28+
29+
# ๊ทธ๋ž˜ํ”„ ์—ฐ๊ฒฐ
30+
for _ in range(m):
31+
u, v = map(int, input().strip().split())
32+
graph[u].append(v)
33+
graph[v].append(u)
34+
35+
bfs(r, graph, visited)
36+
37+
# ํ•ด๋‹น๋…ธ๋“œ๋ฅผ ๋ช‡ ๋ฒˆ์งธ๋กœ ๋ฐฉ๋ฌธํ–ˆ๋Š”์ง€ ์ถœ๋ ฅ
38+
for i in range(1, len(visited)):
39+
print(visited[i])
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import sys
2+
from collections import deque
3+
4+
input = sys.stdin.readline
5+
6+
# BFS ํ•จ์ˆ˜
7+
def bfs(v, graph, visited):
8+
queue = deque([v])
9+
order = 1
10+
while queue: # ํ๊ฐ€ ๋นŒ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต
11+
# ํ์—์„œ ์›์†Œ๋ฅผ ํ•˜๋‚˜ ๋ฝ‘์•„ node์— ๋Œ€์ž…ํ•œ๋‹ค.
12+
node = queue.popleft()
13+
if visited[node] == 0:
14+
visited[node] = order # ๋ฐฉ๋ฌธํ•˜๋ฉด ์ˆœ์„œ ๋„ฃ๊ธฐ
15+
order += 1
16+
graph[node].sort(reverse=True) # ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ธ์ ‘๋…ธ๋“œ ๋ฐฉ๋ฌธํ•˜๊ธฐ ์œ„ํ•ด ์ •๋ ฌ
17+
for u in graph[node]:
18+
if visited[u] == 0: # ์ธ์ ‘ ๋…ธ๋“œ ์ค‘์—์„œ ๋ฐฉ๋ฌธ ์•ˆ ํ•œ ๋…ธ๋“œ๋ฉด bfs ํƒ์ƒ‰
19+
queue.append(u)
20+
21+
# ์ดˆ๊ธฐํ™”
22+
n, m, r = map(int, input().strip().split()) # n: ์ •์ ์˜ ์ˆ˜, m: ๊ฐ„์„ ์˜ ์ˆ˜, r: ์‹œ์ž‘ ์ •์ 
23+
graph = [[] for _ in range(n+1)]
24+
visited = [0] * (n+1)
25+
order = 1
26+
27+
# ๊ทธ๋ž˜ํ”„ ์—ฐ๊ฒฐ
28+
for _ in range(m):
29+
u, v = map(int, input().strip().split())
30+
graph[u].append(v)
31+
graph[v].append(u)
32+
33+
bfs(r, graph, visited)
34+
35+
# ํ•ด๋‹น๋…ธ๋“œ๋ฅผ ๋ช‡ ๋ฒˆ์งธ๋กœ ๋ฐฉ๋ฌธํ–ˆ๋Š”์ง€ ์ถœ๋ ฅ
36+
for i in range(1, len(visited)):
37+
print(visited[i])
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import sys
2+
sys.setrecursionlimit(10**6) # ์ตœ๋Œ€ ์žฌ๊ท€ํ•œ๋„ ๊นŠ์ด
3+
input = sys.stdin.readline
4+
5+
def dfs(v):
6+
global order
7+
visited[v] = order # ๋ฐฉ๋ฌธํ•˜๋ฉด ์ˆœ์„œ ๋„ฃ๊ธฐ
8+
order += 1 # ๋‹ค์Œ ์ˆœ์„œ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ
9+
for u in sorted(graph[v]): # ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ธ์ ‘๋…ธ๋“œ ๋ฐฉ๋ฌธํ•˜๊ธฐ ์œ„ํ•ด ์ •๋ ฌ
10+
if visited[u] == 0: # ๋ฐฉ๋ฌธ ์•ˆ ํ•œ ๋…ธ๋“œ๋ฉด dfsํƒ์ƒ‰
11+
dfs(u)
12+
13+
# n: ์ •์ ์˜ ์ˆ˜, m: ๊ฐ„์„ ์˜ ์ˆ˜, r: ์‹œ์ž‘ ์ •์ 
14+
n, m, r = map(int, input().strip().split())
15+
graph = [[] for _ in range(n + 1)]
16+
visited = [0] * (n + 1) # ๋ฐฉ๋ฌธ ์ˆœ์„œ ์ €์žฅ. 0์ด๋ฉด ๋ฐฉ๋ฌธ X
17+
order = 1
18+
19+
# m๊ฐœ์˜ ๊ฐ„์„  ์ •๋ณด๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๊ทธ๋ž˜ํ”„๋กœ ์—ฐ๊ฒฐํ•˜๊ธฐ
20+
for _ in range(m):
21+
u, v = map(int, input().strip().split())
22+
graph[u].append(v)
23+
graph[v].append(u)
24+
25+
dfs(r)
26+
27+
# ํ•ด๋‹น๋…ธ๋“œ๋ฅผ ๋ช‡ ๋ฒˆ์งธ๋กœ ๋ฐฉ๋ฌธํ–ˆ๋Š”์ง€ ์ถœ๋ ฅ
28+
for i in range(1, n + 1):
29+
print(visited[i])
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import sys
2+
sys.setrecursionlimit(10**6) # ์ตœ๋Œ€ ์žฌ๊ท€ํ•œ๋„ ๊นŠ์ด
3+
input = sys.stdin.readline
4+
5+
# DFS ํ•จ์ˆ˜
6+
def dfs(v):
7+
global order
8+
visited[v] = order # ๋ฐฉ๋ฌธํ•˜๋ฉด ์ˆœ์„œ ๋„ฃ๊ธฐ
9+
order += 1 # ๋‹ค์Œ ์ˆœ์„œ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ
10+
11+
for u in sorted(graph[v], reverse=True): # ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ธ์ ‘๋…ธ๋“œ ๋ฐฉ๋ฌธํ•˜๊ธฐ ์œ„ํ•ด ์ •๋ ฌ
12+
if visited[u] == 0: # ๋ฐฉ๋ฌธ ์•ˆ ํ•œ ๋…ธ๋“œ๋ฉด dfsํƒ์ƒ‰
13+
dfs(u)
14+
15+
16+
# ์ดˆ๊ธฐํ™”
17+
n, m, r = map(int, input().strip().split()) # n: ์ •์ ์˜ ์ˆ˜, m: ๊ฐ„์„ ์˜ ์ˆ˜, r: ์‹œ์ž‘ ์ •์ 
18+
graph = [[] for _ in range(n+1)]
19+
visited = [0] * (n+1)
20+
order = 1
21+
22+
# ๊ทธ๋ž˜ํ”„ ์—ฐ๊ฒฐ
23+
for _ in range(m):
24+
u, v = map(int, input().strip().split())
25+
graph[u].append(v)
26+
graph[v].append(u)
27+
28+
dfs(r)
29+
30+
# ํ•ด๋‹น๋…ธ๋“œ๋ฅผ ๋ช‡ ๋ฒˆ์งธ๋กœ ๋ฐฉ๋ฌธํ–ˆ๋Š”์ง€ ์ถœ๋ ฅ
31+
for i in range(1, len(visited)):
32+
print(visited[i])

0 commit comments

Comments
ย (0)