반응형
7576번 토마토 문제
7576번: 토마토
첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토
www.acmicpc.net
최소날짜를 보고 bfs로 탐색하면 되겠구나라고 생각했습니다.
문제를 어느정도 풀다보니 골드의 문제까지는 어느정도 어떤 알고리즘을 사용하여 풀어나갈지
감이 잡히더라구요.
이런 류의 문제는 풀어본 유형중에도 비슷한 것이 많았어서 쉽게 쉽게 코드를 써나가고 쉽게 풀어낸 것 같습니다.
코드는
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
32
33
34
35
36
37
|
import sys
from collections import deque
input=sys.stdin.readline
q=deque()
d=[-1,1,0,0]
answer=0
def bfs():
while q:
y,x=q.popleft()
for i in range(4):
dx=x+d[i]
dy=y+d[3-i]
if 0<=dx<M and 0<=dy<N and board[dy][dx]==0:
q.append((dy,dx))
board[dy][dx]=board[y][x]+1
find()
def find():
global answer
for i in board:
for j in i:
if j==0:
answer=0
return
else:
answer=max(answer,j)
M,N=map(int,input().split())
board=[list(map(int,input().split())) for _ in range(N)]
for i in range(N):
for j in range(M):
if board[i][j]==1:
q.append((i,j))
bfs()
print(answer-1)
|
cs |
궁금한 점은 댓글로 남겨주세요!
부족한 코드지만 읽어주셔서 감사합니다
반응형
'공부 > algorithm with python' 카테고리의 다른 글
백준 알고리즘 1025번 파이썬 제곱수 찾기 (0) | 2022.07.14 |
---|---|
백준 1024번 파이썬 풀이! (0) | 2022.07.02 |
백준 알고리즘) 14502번 연구소 파이썬 ! (0) | 2022.05.12 |
백준 1083번 sort풀이 with python(파이썬) (0) | 2022.04.28 |
최근댓글