Tags
- Brute Force Algorithm
- queue
- CodingTest
- stack
- ๊ตฌํ
- ๊น์ด ์ฐ์ ํ์
- ์๋ฎฌ๋ ์ด์
- greedy
- BFS
- DP
- SpringBoot
- PGM
- Java
- ๋ฌธ์์ด
- Study
- dfs
- ๋ฐฑํธ๋ํน
- Python
- ๊ต์ฌ
- ๊ทธ๋ํ ์ด๋ก
- ๋๋น ์ฐ์ ํ์
- BOJ
- ์๋ฃ๊ตฌ์กฐ
- Dynamic Programming
- sort
- ์ํ
- ์ ๋ ฌ
- ์ ์๋ก
- ๊ทธ๋ํ ํ์
- LV2
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_1012 : ์ ๊ธฐ๋ ๋ฐฐ์ถ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ์ง๋ ์ด๊ฐ ํผ์ง๋ ๋ฒ์๋ ๋ฐฐ์ถ๊ฐ ๊ฐ๋ก์ธ๋ก๋ก ๋ถ์ด์๋ ๋ฒ์๋ฅผ ๋ปํ๋ค.
- ๋ถ์ด์๋ ๋ฐฐ์ถ ๊ทธ๋ฃน์ด ๋ช ๊ฐ์ธ์ง ์ถ๋ ฅํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import sys
from collections import deque
dxy = [[0,-1],[-1,0],[0,1],[1,0]]
for _ in range(int(sys.stdin.readline())):
m, n ,k = map(int, sys.stdin.readline().rstrip().split())
field = [[0] * m for _ in range(n)]
for _ in range(k):
x, y = map(int, sys.stdin.readline().rstrip().split())
field[y][x] = 1
answer = 0
visit = [[False] * m for _ in range(n)]
for i in range(n):
for j in range(m):
que = deque()
if field[i][j] == 1 and visit[i][j] == False:
que.append([i,j])
field[i][j] = 0
while len(que) > 0:
x, y = que.popleft()
visit[x][y] = True
for k in range(4):
dx = x + dxy[k][0]
dy = y + dxy[k][1]
if dx < 0 or dx >= n or dy < 0 or dy >= m:
continue
if field[dx][dy] == 1 and visit[dx][dy] == False:
field[dx][dy] = 0
que.append([dx,dy])
answer += 1
print(answer)
๐ธ ์ฝ๋ ํด์ ๐ธ
- BFS๋ฅผ ํตํด์ ๊ฐ์ ๊ทธ๋ฃน์ ๋ฐฐ์ถ๋ฅผ ์ฐพ๊ณ , ๊ทธ๋ฃน์ ์๋ฅผ ์ถ๋ ฅํ๋ค.
- m, n, k๋ฅผ ์ ๋ ฅ๋ฐ๊ณ n,m ์ผ๋ก ์ ์ฒด ๋ฐญ์ ์กฐ์ฌํด์ 1์ ์ฐพ๋๋ค.
- 1์ ์ฐพ์ ์ธ๋ฑ์ค๋ถํฐ BFS๋ฅผ ์์ํ๋ค.
- ํด๋น ์ขํ์์ ์ข ์ ์ฐ ํ ์ธ๋ฑ์ค๋ฅผ ํ์ธํด ๋ฆฌ์คํธ ๋ฒ์ ๋ด์ธ์ง, ๊ฐ์ 1์ด๊ณ ๋ฐฉ๋ฌธํ์ ์๋์ง ํ์ธํ๋ค.
- ๋ฒ์๋ด์ด๋ฉฐ ๊ฐ์ด 1์ด๊ณ ๋ฐฉ๋ฌธํ์ ์์ผ๋ฉด, ๊ฐ์ 0์ผ๋ก ๋ง๋ค๊ณ ํ์ ํด๋น ์ขํ๋ฅผ ๋ฃ๋๋ค.
- ํ๊ฐ ๋น๋๊น์ง ๋ฐ๋ณตํ๋ค.
- ํ์ ๋ฐ๋ณต์ด ๋๋ BFS๊ฐ ์ข ๋ฃ๋๋ฉด ๊ทธ๋ฃน์ ์๋ฅผ 1 ๋ํ๋ค.
๐ธ end ๐ธ
- ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ์ง๋ ์ด์ ์์ง์์ ์๋ชป ์ดํดํด ๋ธ๋ฃจํธํฌ์ค๋ก ์ฐฉ๊ฐํด์ ์๊ฐ์ด ์ค๋๊ฑธ๋ ธ๋ค.
- ๋ฌธ์ ์ ๋ ฅ์ด n, m, k ๊ฐ ์๋๋ผ m, n, k ์ ์ ๋ ฅ์ธ ๊ฒ๋ ์ข ํท๊น๋ฆฌ๊ฒ ๋ง๋ค์๋ค.
- BFS๋ฅผ ๊ตฌํํ๋๊ฑด ์ด๋ ต์ง ์์๋๋ฐ ์๊ฐ ์ด๊ณผ๊ฐ ๋์๋ค.
- ํ๋ฅผ ๋ฆฌ์คํธ์์ ๋ฐํฌ๋ก ๊ต์ฒดํ๋ค. ๊ทธ๋๋ ์๊ฐ์ด๊ณผ๊ฐ ๋์๋ค.
- ํ์์ ๋์จ ์ขํ์ ์ข์์ฐํ ์ธ๋ฑ์ค๋ฅผ ํ์ธํ ๋, ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ฉด ๋ฐ๋ก continue๋ฅผ ํด์ฃผ์๋ค. ํต๊ณผํ๋ค.
728x90
'CodingTest > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Lv.1 : ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ (0) | 2022.09.19 |
---|---|
Lv.2 : ์คํฌํธ๋ฆฌ (0) | 2022.09.18 |
Lv.2 : ํํ (0) | 2022.09.12 |
BOJ_1548 : ๋ถ๋ถ ์ผ๊ฐ ์์ด (0) | 2022.09.11 |
BOJ_2961 : ๋์์ด๊ฐ ๋ง๋ ๋ง์๋ ์์ (0) | 2022.09.10 |