"""
1012 - 유기농 배추 (silver 2)
"""
import sys
input = sys.stdin.readline
def dfs(array, i, j):
array[i][j] = 2
if j + 1 <= M - 1 and array[i][j + 1] == 1:
dfs(array, i, j + 1)
if i + 1 <= N - 1 and array[i + 1][j] == 1:
dfs(array, i + 1, j)
T = int(input().rstrip())
for _ in range(T):
M, N, K = map(int, input().split())
array = [[0 for _ in range(M)] for _ in range(N)]
for _ in range(K):
X, Y = map(int, input().split())
array[Y][X] = 1
count = 0
for i in range(N):
for j in range(M):
if array[i][j] == 1:
count += 1
dfs(array, i, j)
print(count)
- 1차 틀림
"""
1012 - 유기농 배추 (silver 2)
"""
import sys
input = sys.stdin.readline
def search(array, i, j):
array[i][j] = 2
if i - 1 >= 0 and array[i - 1][j] == 1:
search(array, i + 1, j)
if i + 1 <= N - 1 and array[i + 1][j] == 1:
search(array, i + 1, j)
if j - 1 >= 0 and array[i][j - 1] == 1:
search(array, i, j - 1)
if j + 1 <= M - 1 and array[i][j + 1] == 1:
search(array, i, j + 1)
T = int(input().rstrip())
for _ in range(T):
M, N, K = map(int, input().split())
array = [[0 for _ in range(M)] for _ in range(N)]
for _ in range(K):
X, Y = map(int, input().split())
array[Y][X] = 1
count = 0
for i in range(N):
for j in range(M):
if array[i][j] == 1:
count += 1
search(array, i, j)
print(count)
- 2차 런타임 에러(index error)
"""
1012 - 유기농 배추 (silver 2)
"""
import sys
input = sys.stdin.readline
def bfs(array, i, j):
queue = [[i, j]]
qx = [0, -1, 1, 0]
qy = [1, 0, 0, -1]
while queue:
a = queue[-1][0]
b = queue[-1][1]
array[a][b] = 2
del queue[-1]
for k in range(4):
q = a + qx[k]
w = b + qy[k]
if 0 <= q < N and 0 <= w < M and array[q][w] == 1:
queue.append([q, w])
T = int(input().rstrip())
for _ in range(T):
M, N, K = map(int, input().split())
array = [[0 for _ in range(M)] for _ in range(N)]
for _ in range(K):
X, Y = map(int, input().split())
array[Y][X] = 1
count = 0
for i in range(N):
for j in range(M):
if array[i][j] == 1:
bfs(array, i, j)
count += 1
print(count)
BFS 알고리즘
- 문제 접근 방식은 맞음
- bfs 함수 코드 이해하기
'백준 문제풀이' 카테고리의 다른 글
1541 - 잃어버린 괄호 (silver 2) (0) | 2022.08.07 |
---|---|
1260 - DFS와 BFS (silver 2) (0) | 2022.08.05 |
17626 - Four Squares (silver 3) (0) | 2022.08.04 |
11727 - 2×n 타일링 2 (silver 3) (0) | 2022.07.31 |
11726 - 2×n 타일링 (silver 3) (0) | 2022.07.31 |