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
- deep voice
- Vocoder
- 한국어 tts
- 노래합성
- waveglow
- 트레이닝
- you only look once
- 딥러닝 보코더
- 보코더
- 윈도우
- text-to-speech
- 음성 합성
- tacotron
- singing voice synthesis
- 딥러닝 음성 합성
- DCTTS
- 학습
- TTS
- YOLO
- 한국어 음성 합성
- melgan
- 딥러닝
- korean tts
- 타코트론
Archives
- Today
- Total
chldkato
백준 3184 양 (파이썬) 본문
https://www.acmicpc.net/problem/3184
1. 벽이 아니면 bfs를 실행
2. bfs로 벽이 아닐 경우에 이동하면서 늑대나 양의 좌표가 불러와지면 각각 vq와 oq에 저장
3. vq, oq의 길이를 비교하여 늑대나 양을 지운다
4. 늑대와 양의 개수를 세서 출력
from collections import deque
import sys
input = sys.stdin.readline
dx = [1, -1, 0, 0]
dy = [0, 0, 1, -1]
def bfs(x, y):
q.append([x, y])
c[x][y] = 1
vq, oq = [], []
while q:
x, y = q.popleft()
if a[x][y] == 'v':
vq.append([x, y])
elif a[x][y] == 'o':
oq.append([x, y])
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if 0 <= nx < n and 0 <= ny < m:
if a[nx][ny] != '#' and c[nx][ny] == 0:
c[nx][ny] = 1
q.append([nx, ny])
if len(vq) >= len(oq):
for i in oq:
a[i[0]][i[1]] = '.'
else:
for i in vq:
a[i[0]][i[1]] = '.'
n, m = map(int, input().split())
a = [list(map(str, input().strip())) for _ in range(n)]
c = [[0]*m for _ in range(n)]
q = deque()
for i in range(n):
for j in range(m):
if a[i][j] != '#' and c[i][j] == 0:
bfs(i, j)
ocnt, vcnt = 0, 0
for i in range(n):
for j in range(m):
if a[i][j] == 'o':
ocnt += 1
elif a[i][j] == 'v':
vcnt += 1
print(ocnt, vcnt)
'백준' 카테고리의 다른 글
백준 1987 알파벳 (파이썬) (0) | 2020.02.18 |
---|---|
백준 1726 로봇 (파이썬) (0) | 2020.02.18 |
백준 9205 맥주 마시면서 걸어가기 (파이썬) (0) | 2020.02.18 |
백준 10159 저울 (파이썬) (0) | 2020.02.18 |
백준 2458 키 순서 (파이썬) (1) | 2020.02.18 |
Comments