너비우선탐색 3

[백준] 17142 연구소 python

https://www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net 삼성 기출 문제이다. 이전에 풀었던 연구소 문제를 풀었는데 그 문제는 벽을 생성해서 안전구역을 최대화 시키는 것이었다. 이번 연구소 문제는 바이러스를 M개 활성화 시켜서 전체 구역을 감염시키는 최소 시간을 구하면 된다. 이 문제를 풀기 위해 다음과 같은 순서로 구현했다. 1) 입력을 받을 때 지도(이차원배열, _map)을 생성하고, 바이러스의 모든 위치를 파악한다(viruses). 2) 모든 바이러스에서 ..

STUDY/Algorithm 2022.03.22

[백준] 3055 탈출 python

https://www.acmicpc.net/problem/3055 3055번: 탈출 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제 www.acmicpc.net from collections import deque import sys; input = sys.stdin.readline def bfs_step(start_array, visited, opposit_visited, isSonic): delta = [(-1, 0), (1, 0), (0, -1), (0, 1)] ret = deque() while start_array: cur_x, cur_y = start_ar..

STUDY/Algorithm 2021.08.10

[백준] 16234 인구 이동 python(pypy3)

https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net import sys from collections import deque def bfs(r, c): visit[r][c] = 1 q = deque() q.append((r, c)) ret = [(r,c)] while q: y, x = q.popleft() for i in range(4): yy = y + dy[i] xx = x + dx[i] # 주어진 나라의 크기를 넘는 경우 if ..

STUDY/Algorithm 2021.07.08