티스토리 뷰
- 문제 링크
https://www.acmicpc.net/problem/1012
- 풀이
그래프를 가로 x 세로 만큼 먼저 선언해놓고, K만큼 배추의 위치를 입력받을 때 graph 배열에 배추의 위치를 1로 표시한다.
그리고 배추가 있는 곳에서 bfs를 돌려주면 된다. 밑에 코드를 보면 알겠지만 배추의 위치를 입력받을 때 a, b 위치만 바꿔주는 것만 고려하면 특별히 예외처리 해줄만한 것도 없어서 푸는데 한.. 7분 걸렸던 것 같다.
bfs를 한 번 실행할 때 마다 배추흰지렁이가 1마리씩 필요하다고 생각하면 편하다.
- 코드
import sys
from collections import deque
input = sys.stdin.readline
dx = [0,0,-1,1]
dy = [-1,1,0,0]
def bfs(x, y):
queue = deque()
queue.append((x, y))
visited[x][y] = 1
while queue:
a, b = queue.popleft()
for i in range(4):
nx = a + dx[i]
ny = b + dy[i]
if 0 <= nx < N and 0 <= ny < M:
if graph[nx][ny] == 1 and visited[nx][ny] == 0:
visited[nx][ny] = 1
queue.append((nx, ny))
for _ in range(int(input())):
M, N, K = map(int, input().split())
graph = [[0] * M for _ in range(N)]
visited = [[0] * M for _ in range(N)]
for _ in range(K):
a, b = map(int, input().split())
graph[b][a] = 1
cnt = 0
for i in range(N):
for j in range(M):
if graph[i][j] == 1 and visited[i][j] == 0:
bfs(i, j)
cnt += 1
print(cnt)
요즘 실버에서 골드 4까지의 문제를 랜덤으로 계속 반복해서 풀고 있다. 풀면서 느낀건 내가 재귀(백트래킹, dfs)에 많이 약하구나를 많이 느끼고 있다. 틈틈히 많이 공부해야겠다.. 해도해도 부족하지만 그래도 해야지 어쩌겠냐 !!
아직 공부해야 될 것들 참 많지만 그래도 "꾸준히" 해나가야겠다 !!
리액트는 언제하지? ㅠㅠ
'Algorithm > BOJ' 카테고리의 다른 글
| [BOJ][Python] 백준 2589번 : 보물섬 (0) | 2023.04.11 |
|---|---|
| [BOJ][Python] 백준 11724번 : 연결 요소의 개수 (0) | 2023.04.06 |
| [BOJ][Python] 백준 21610번 : 마법사 상어와 비바라기 (0) | 2023.03.21 |
| [BOJ][Python] 백준 14938번 : 서강그라운드 (1) | 2023.03.16 |
| [BOJ][Python] 백준 13424번 : 비밀 모임(다익스트라) (1) | 2023.03.09 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- boj 10026 python
- 폰트 최적화
- 리코쳇 로봇
- 마법사 상어
- WOFF2
- BFS
- 백준
- 1270
- 레벨 2
- 알고리즘
- boj 2589
- 도넛 행성
- 목데이터
- BOJ
- 구현
- 6986
- 리액트 츨겨찾기
- 리액트
- 실버3
- 21610
- 백준 10026
- 리액트 최근검색
- 보정평균
- 14938
- 데이크스트라
- 최근검색 기능
- Python
- opgg #클론코딩 #할수있다
- 파이썬
- 서강그라운드
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함