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 |
Tags
- korean tts
- 딥러닝 음성 합성
- 한국어 음성 합성
- 딥러닝
- text-to-speech
- 딥러닝 보코더
- TTS
- 타코트론
- waveglow
- Vocoder
- 노래합성
- YOLO
- 한국어 tts
- melgan
- 학습
- DCTTS
- tacotron
- deep voice
- singing voice synthesis
- you only look once
- 트레이닝
- 음성 합성
- 보코더
- 윈도우
Archives
- Today
- Total
chldkato
백준 4179 불! (파이썬) 본문
https://www.acmicpc.net/problem/4179
1. 불과 지훈이가 있을 좌표를 저장할 큐를 따로 만든다
2. 불이 이동하고 지훈이가 이동하는 순서로 bfs를 설계
3. 지훈이에 해당하는 큐에 값이 있으면 bfs를 반복하고 없으면 IMPOSSIBLE 출력
from collections import deque
import sys
input = sys.stdin.readline
dx = [1, -1, 0, 0]
dy = [0, 0, 1, -1]
def bfs():
fqlen = len(fq)
while fqlen:
x, y = fq.popleft()
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if 0 <= nx < r and 0 <= ny < c:
if a[nx][ny] == '.':
a[nx][ny] = 'F'
fq.append([nx, ny])
fqlen -= 1
qlen = len(q)
while qlen:
x, y = q.popleft()
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if nx < 0 or ny < 0 or nx >= r or ny >= c:
print(check[x][y])
return
else:
if a[nx][ny] == '.' and not check[nx][ny]:
check[nx][ny] = check[x][y] + 1
q.append([nx, ny])
qlen -= 1
if q:
bfs()
else:
print("IMPOSSIBLE")
r, c = map(int, input().split())
check = [[0]*c for _ in range(r)]
a, q, fq = [], deque(), deque()
for i in range(r):
row = list(input().strip())
a.append(row)
for j, key in enumerate(row):
if key == 'J':
q.append([i, j])
check[i][j] = 1
a[i][j] = '.'
elif key == 'F':
check[i][j] = 1
fq.append([i, j])
bfs()
'백준' 카테고리의 다른 글
백준 3197 백조의 호수 (파이썬) (0) | 2020.02.21 |
---|---|
백준 5214 환승 (파이썬) (0) | 2020.02.21 |
백준 9328 열쇠 (파이썬) (0) | 2020.02.21 |
백준 16236 아기 상어 (파이썬) (0) | 2020.02.21 |
백준 1938 통나무 옮기기 (파이썬) (0) | 2020.02.20 |
Comments