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
- 학습
- YOLO
- 음성 합성
- singing voice synthesis
- TTS
- you only look once
- DCTTS
- 딥러닝
- deep voice
- 딥러닝 음성 합성
- korean tts
- 한국어 음성 합성
- Vocoder
- 한국어 tts
- text-to-speech
- waveglow
- 윈도우
- 보코더
- 노래합성
- melgan
- 트레이닝
- 딥러닝 보코더
- 타코트론
- tacotron
Archives
- Today
- Total
chldkato
백준 2234 성곽 (파이썬) 본문
https://www.acmicpc.net/problem/2234
1. 동서남북에 맞춰 방향과 마주칠 벽의 번호 설정. (동쪽으로 이동할 경우 다음칸의 서쪽벽과 마주침)
2. 비트연산으로 현재 이동방향과 다음칸에 벽이 있는지 확인하면서 이동
3. 필요한 답을 반복문으로 출력
from collections import deque
import sys
input = sys.stdin.readline
dx = [0, 1, 0, -1]
dy = [1, 0, -1, 0]
dir = [1, 2, 4, 8]
def bfs(x, y, cnt):
q.append([x, y])
c[x][y] = cnt
while q:
x, y = q.popleft()
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if 0 <= nx < m and 0 <= ny < n:
if dir[i] & ~a[nx][ny] and c[nx][ny] == 0:
c[nx][ny] = cnt
q.append([nx, ny])
n, m = map(int, input().split())
a = [list(map(int, input().split())) for _ in range(m)]
c = [[0]*n for _ in range(m)]
q = deque()
cnt = 1
for i in range(m):
for j in range(n):
if c[i][j] == 0:
bfs(i, j, cnt)
cnt += 1
print(cnt-1)
ans = [0]*(cnt-1)
for i in range(m):
for j in range(n):
ans[c[i][j]-1] += 1
print(max(ans))
max_room = 0
for i in range(m):
for j in range(n):
for k in range(4):
ni = i + dx[k]
nj = j + dy[k]
if 0 <= ni < m and 0 <= nj < n:
if c[i][j] != c[ni][nj]:
room = ans[c[i][j]-1] + ans[c[ni][nj]-1]
max_room = max(room, max_room)
print(max_room)
'백준' 카테고리의 다른 글
백준 16236 아기 상어 (파이썬) (0) | 2020.02.21 |
---|---|
백준 1938 통나무 옮기기 (파이썬) (0) | 2020.02.20 |
백준 1194 달이 차오른다, 가자. (파이썬) (0) | 2020.02.20 |
백준 1939 중량제한 (파이썬) (0) | 2020.02.18 |
백준 1152 단어의 개수 (파이썬) (0) | 2020.02.18 |
Comments