๋ฐ์ํ
Notice
Recent Posts
Recent Comments
Link
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Call Stack
- java
- styled-components ๋ฒ์ ๋ฌธ์
- reading 'edgesOut'
- ๋คํธ์ํฌ ํต์ ์์ฒญ
- reading 'useDebugValue'
- styled components ์ค์น ์๋จ
- carouselButton
- ๋จ์ผ๋งํฌ๋๋ฆฌ์คํธ
- vscode extension
- styled-components extension
- styled-compoents
- react-native-snap-carousel
- Code Splitting
- javascript ๋น๋๊ธฐ
- 1966 ํ๋ฆฐํฐํ
- styled-components ์ค์น ์ค๋ฅ
- git branch -m
- react
- ์ต๋จ๊ฑฐ๋ฆฌ์๊ณ ๋ฆฌ์ฆ
- React ๊ณต์๋ฌธ์
- likelion
- fetch()
- use-immer
- Styled Components
- js fetch
- ๋ธ๋์น ์ด๋ฆ ๋ณ๊ฒฝ ๋ช ๋ น์ด
- Javascript
- react immer
- ํ ์คํฌ ํ
Archives
- Today
- Total
Keep Going
[BOJ] 2626 ๋ฐ์ด๋ฌ์ค ๋ณธ๋ฌธ
๋ฐ์ํ
๐ก๋ฌธ์ ๋ถ์ ์์ฝ
- ํ ์ปดํจํฐ๊ฐ ์์ ๊ฑธ๋ฆฌ๋ฉด → ๊ทธ ์ปด๊ณผ ๋คํธ์ํฌ๋ก ์ฐ๊ฒฐ๋์ด์๋ ๋ชจ๋ ์ปด์ด ์์ ๊ฑธ๋ฆฐ๋ค.
- 1๋ฒ ์ปด์ ํตํด ์์ ๊ฑธ๋ฆฌ๋ ์ปดํจํฐ ์๋ฅผ ์ถ๋ ฅํด๋ผ.
์ฃ์ง์ผ์ด์ค
- ๋น์ด์๊ฑฐ๋ ํ๋๋ง ์๋ ์ผ์ด์ค : ์ ๋ ฅ์ด ๋น์ด์๊ฑฐ๋, 1๊ฐ์ ์์๋ง ์๋ ๊ฒฝ์ฐ
# ์ ๋ ฅ 1 1 1 1 # ์ถ๋ ฅ 0
์ ์ถ๋ ฅ
- ์ ๋ ฅ
7 # ์ปดํจํฐ ์ N 6 # ์ปดํจํฐ ์ ์ (๊ฐ์ ์) M 1 2 # ๊ฐ์ ์ ๋งํผ ์ฐ๊ฒฐ๋ ์ปดํจํฐ ๋ฒํธ์์ด ์ฃผ์ด์ง๋ค. 2 3 1 5 5 2 5 6 4 7
- ์ถ๋ ฅ
4 # 1๋ฒ ์ปด์ ํตํด ์์ ๊ฑธ๋ฆฌ๋ ์ปดํจํฐ ์
1 ≤ ์ปดํจํฐ ์ N ≤ 100
1 ≤ ๊ฐ์ ์ M ≤ ์์
์๊ฐ์ ํ : 1์ด
๐ก์๊ณ ๋ฆฌ์ฆ ์ค๊ณ (์๋ ์ฝ๋)
- ์
๋ ฅ๊ฐ ๋ฐ๊ธฐ
- n
- m
- com = {i:[] for i in range(1,n+1)}
- visited = [0]*(n+1)
- ๋ฒํธ ์ ๋ฐ์์ ์ธ์ ๋ฆฌ์คํธ์ ์ ์ฅ
- 1๋ฒ ์ปดํจํฐ๋ฅผ ์์์ผ๋ก ํ์ ์์ํด์ ์ฐ๊ฒฐ๋ ์ปดํจํฐ ๊ฐ์ ์ธ๊ธฐ
- #0. ํ ๋ง๋ค๊ณ ์ฒดํฌ์ธ
- #1. while ํ์์ ํ๋ ๋ฝ๊ธฐ
- #2. ๋ชฉ์ ์ง์ธ๊ฐ?
- #3. ๊ฐ ์ ์๋ ๊ณณ ์ํ
- #4. ๊ฐ ์ ์๋?
- #5. ์ฒดํฌ์ธ
- #6. ํ์ ๋ฃ
๐ก์ฝ๋
34044 KB 64 ms
import sys
from collections import deque
def bfs(node,com,visited):
num_com = 0
#0. ํ ๋ง๋ค๊ณ ์ฒดํฌ์ธ
q = deque([node])
visited[node] = True
while q:
#1. ํ์์ ํ๋ ๋ฝ๊ธฐ
v = q.popleft()
#2. ๋ชฉ์ ์ง์ธ๊ฐ
#3. ๊ฐ ์ ์๋ ๊ณณ ์ํ
for item in com[v]:
#4. ๊ฐ ์ ์๋?
if not visited[item]:
#5. ์ฒดํฌ์ธ
visited[item] = True
num_com += 1
#6. ํ์ ๋ฃ๊ธฐ
q.append(item)
return num_com
def solution():
n = int(sys.stdin.readline().strip())
m = int(sys.stdin.readline().strip())
com = {i:[] for i in range(1,n+1)}
visited = [False]*(n+1)
for _ in range(m):
u,v = map(int, sys.stdin.readline().strip().split())
com[u].append(v)
com[v].append(u)
wom_num = bfs(1,com,visited)
return wom_num
if __name__=="__main__":
print(solution())
๐ก์๊ฐ๋ณต์ก๋
O(N+M)
๐ก ๋๋์ or ๊ธฐ์ตํ ์ ๋ณด
- ์ธ์ ๋ฆฌ์คํธ & bfs ๊ตฌํ์ ๊ฐ ์ ์๋ ๊ณณ ์ํํ๋ ์ฝ๋
#3. ๊ฐ ์ ์๋ ๊ณณ ์ํ
for item in com[v]:
#4. ๊ฐ ์ ์๋?
if not visited[item]:
#5. ์ฒดํฌ์ธ
visited[item] = True
num_com += 1
#6. ํ์ ๋ฃ๊ธฐ
q.append(item)
๋ฐ์ํ
'Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ต๋จ๊ฑฐ๋ฆฌ] ๋ฒจ๋ง ํฌ๋ (3) | 2024.06.10 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ์ ์ผ๊ฐํ (0) | 2024.05.27 |
[BOJ] 6603 ๋ก๋ (0) | 2024.04.29 |
[BOJ] 18870 ์ขํ ์์ถ (1) | 2024.04.22 |
[BOJ] 1966 ํ๋ฆฐํฐ ํ (0) | 2024.04.15 |