[백준] 18405 경쟁적 전염

dev-log·2022년 3월 23일
0

deque는 sort기능이 없어서 정렬해주려면

data.sort()
q=deque(data)

정렬한 후 변환해주는 과정 필요

from collections import deque
import sys

input=sys.stdin.readline
n,k=map(int,input().split())
board=[]
dx=[0,1,0,-1]
dy=[1,0,-1,0]
for i in range(n):
    board.append(list(map(int,input().split())))

s,finalx,finaly=map(int,input().split())


def bfs():
    data=[]
    answer=0
    for i in range(n):
        for j in range(n):
            if board[i][j]>0:
                data.append((board[i][j],i,j,0))

    data.sort()
    q=deque(data)
    while q:
        virus,x,y,time=q.popleft()
        if time ==s:
           break
        for i in range(4):
            nx=dx[i]+x
            ny=dy[i]+y
            if nx<0 or ny<0 or nx>=n or ny>=n:
                continue
            if  board[nx][ny]==0:
                q.append((virus,nx,ny,time+1))
                board[nx][ny]=virus
    print(board[finalx-1][finaly-1])


bfs()
profile
배운 걸 기록하는 곳입니다.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN