Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Spring Boot
- 프로래머스
- 백준
- sql 기술면접
- java
- springboot
- MySQL
- JPA
- MSA
- java 기술면접
- with recursive
- spring security
- 백준 17626
- 프로그래머스
- re.split
- 백준 19238
- 백준 16235
- 파이썬
- spring oauth
- 백준 15685
- 백준 16236
- JVM
- 웹어플리케이션 서버
- Kotlin
- Spring
- 백준 17779
- 백준 16719
- spring cloud
- Coroutine
- 백준 파이썬
Archives
- Today
- Total
시작이 반
[백준] 7576번(python 파이썬) 본문
SMALL
미로 문제와 동일한 문제이다.
하지만 익은 토마토가 여러개 있을경우 그 토마토에 대해서 bfs처리를 동시에 해줘야한다.
처음에는 만약에 익은토마토가 여러개이고 안익은 토마토로 연결되어있으면 익은토마토의 개수만큼 나눠주면 되지아 않을까하고 풀어봤는데 아니었다.
어떻게 동시에 bfs를 돌려야 하는지 고민하는데 쓰레드 밖에 도저히 생각이 나지 않아서 알아본결과 큐에 익은 토마토를 넣어주면 되는 것이었다. 간단한 방법이었지만 생각이 나지 않으면 풀 수 없는 문제..
bfs에서 큐를 왜사용하는지 알아야함
from collections import deque
import sys
input = sys.stdin.readline
col, row = map(int, input().split())
graph = [list(map(int, input().split())) for _ in range(row)]
visited = [[False] * col for _ in range(row)]
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
queue = deque()
def Bfs(queue, graph, visited):
while queue:
pop_x, pop_y = queue.popleft()
for i in range(4):
next_x = pop_x + dx[i]
next_y = pop_y + dy[i]
if next_x <= -1 or next_x >= row or next_y <= -1 or next_y >= col:
continue
if not visited[next_x][next_y] and graph[next_x][next_y] == 0:
queue.append((next_x, next_y))
visited[next_x][next_y] = True
graph[next_x][next_y] = graph[pop_x][pop_y] + 1
zero_flag = False
for i in range(row):
for j in range(col):
if graph[i][j] == 1:
queue.append((i, j))
Bfs(queue, graph, visited)
for i in range(row):
if 0 in graph[i]:
zero_flag = True
break
if not zero_flag:
print(max(map(max, graph)) - 1)
else:
print(-1)
LIST
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 14503번(python 파이썬) (0) | 2021.01.07 |
---|---|
[백준] 7569번(python 파이썬) (0) | 2021.01.07 |
[백준] 2178번(python 파이썬) (0) | 2021.01.06 |
[백준] 1012번(python 파이썬) (0) | 2021.01.06 |
[백준] 1926번(python 파이썬) (0) | 2021.01.05 |