โถ ๋ฌธ์ :
import sys
t = int(input())
sys.setrecursionlimit(10**6)
def dfs(a, b):
if a < 0 or a >= m or b < 0 or b >= n:
return
if graph[a][b] == 0:
return
graph[a][b] = 0
dfs(a - 1, b)
dfs(a, b - 1)
dfs(a + 1, b)
dfs(a, b + 1)
for _ in range(t):
m, n, k = map(int, input().split())
graph = [[0 for _ in range(n)]for _ in range(m)]
for _ in range(k):
a, b = map(int, input().split())
graph[a][b] = 1
result = 0
for a in range(m):
for b in range(n):
if graph[a][b] == 1:
dfs(a,b)
result += 1
print(result)
โถ ๋ฌธ์ ํ์ด
1. dfs() ์ ์ธ => ๋ฐฐ์ด์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๊ฑฐ๋ ํด๋น ์นธ์ ๊ฐ์ด 0์ด๋ฉด ๋ฐํ ์๋ ๊ฒฝ์ฐ์ ํด๋น ์นธ๊ณผ ์ธ์ ํ๋ฉด์ 1์ ๊ฐ์ง ์นธ์ 0์ผ๋ก ๋ณํ
2. graph๋ฐ์ดํฐ๋ฅผ ์ํํ๋ฉฐ 1๊ฐ์ ๊ฐ์ง ์นธ์ ์ฐพ์ ํด๋น ์นธ๊ณผ ์ธ์ ํ 1๋ค์ 0์ผ๋ก ๋ณํ
3. ํ์ ์ข ๋ฃ์ 1์ ๊ฐ์ง ๊ตฐ์ง์ 0์ผ๋ก ๋ณํํ ๋์ ํ์๋ฅผ ์ผ result ๊ฐ์ ์ถ๋ ฅ
'๐ฏ CodingTest > BaekJoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BaekJoon] 1107 ๋ฆฌ๋ชจ์ปจ (0) | 2022.04.14 |
---|---|
[BaekJoon] 1074๋ฒ Z (0) | 2022.04.13 |
[BaekJoon] 1003 ํผ๋ณด๋์น ํจ์ (0) | 2022.04.12 |
[BaekJoon] 18111 ๋ง์ธํฌ๋ํํธ (0) | 2022.04.11 |
[BaekJoon] 15829 Hashing (0) | 2022.04.11 |