티스토리 뷰
1012번: 유기농 배추
차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 �
www.acmicpc.net
[DFS]
import sys
# 재귀 제한을 늘려준다.
sys.setrecursionlimit(10**6)
t = int(sys.stdin.readline().rstrip())
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
def dfs(x, y, group_number):
# 현재 정점은 배추흰지렁이가 보호한다.
group[x][y] = group_number
# 인접한 배추들도 배추흰지렁이가 보호한다.
for i in range(len(dx)):
nx = x + dx[i]
ny = y + dy[i]
if not (0 <= nx < n and 0 <= ny < m):
continue
if graph[nx][ny] == 1 and group[nx][ny] == -1:
dfs(nx, ny, group_number)
for _ in range(t):
m, n, k = map(int, sys.stdin.readline().rstrip().split())
graph = [[0] * m for _ in range(n)]
group = [[-1] * m for _ in range(n)]
for _ in range(k):
y, x = map(int, sys.stdin.readline().rstrip().split())
graph[x][y] = 1
group_number = 0
for i in range(n):
for j in range(m):
# 배추가 심어져 있고, 배추흰지렁이가 없다면 추가한다.
if graph[i][j] == 1 and group[i][j] == -1:
group_number += 1
dfs(i, j, group_number)
# 필요한 배추흰지렁이 최소 마리 수
print(group_number)
[BFS]
import sys
from collections import deque
t = int(sys.stdin.readline().rstrip())
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
def bfs(i, j, group_number):
# 현재 정점은 배추흰지렁이가 보호한다.
queue = deque()
queue.append((i, j))
group[i][j] = group_number
while queue:
x, y = queue.popleft()
# 인접한 배추들도 배추흰지렁이가 보호한다.
for i in range(len(dx)):
nx = x + dx[i]
ny = y + dy[i]
if not (0 <= nx < n and 0 <= ny < m):
continue
if graph[nx][ny] == 1 and group[nx][ny] == -1:
queue.append((nx, ny))
group[nx][ny] = group_number
for _ in range(t):
m, n, k = map(int, sys.stdin.readline().rstrip().split())
graph = [[0] * m for _ in range(n)]
group = [[-1] * m for _ in range(n)]
for _ in range(k):
y, x = map(int, sys.stdin.readline().rstrip().split())
graph[x][y] = 1
group_number = 0
for x in range(n):
for y in range(m):
# 배추가 심어져 있고, 배추흰지렁이가 없다면 추가한다.
if graph[x][y] == 1 and group[x][y] == -1:
group_number += 1
bfs(x, y, group_number)
# 필요한 배추흰지렁이 최소 마리 수
print(group_number)
'알고리즘 문제풀이 > BOJ' 카테고리의 다른 글
[BOJ] 구현 - 15953 상금 헌터 (0) | 2020.10.01 |
---|---|
[BOJ] DFS/BFS - DFS와 BFS (0) | 2020.09.25 |
[BOJ] DFS/BFS - 2606 바이러스 (0) | 2020.09.25 |
[BOJ] DP - 2839 설탕 배달 (0) | 2020.09.24 |
[BOJ] DP - 14697 방 배정하기 (0) | 2020.09.24 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- repository
- 단계별로 문제풀이
- 정렬
- 깃
- 자료구조
- BOJ
- DP
- 2019 카카오 개발자 겨울 인턴십
- bfs
- 구현
- Summer/Winter Coding(~2018)
- 알고리즘
- 그리디
- Algorithm
- 열혈강의
- Idempotent
- git
- binary search
- 백준
- dfs
- spring boot 2.3.1
- Algorihtm
- 저장소
- programmers
- 2020 카카오 인턴십
- OS
- 이것이 코딩테스트다
- 코틀린
- 그래프
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함