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
- 학습
- DCTTS
- 한국어 tts
- 타코트론
- korean tts
- melgan
- 노래합성
- YOLO
- singing voice synthesis
- TTS
- 한국어 음성 합성
- 딥러닝 보코더
- Vocoder
- 딥러닝
- you only look once
- 보코더
- deep voice
- waveglow
- 딥러닝 음성 합성
- 음성 합성
- 윈도우
- text-to-speech
- 트레이닝
- tacotron
Archives
- Today
- Total
chldkato
백준 2151 거울 설치 (파이썬) 본문
https://www.acmicpc.net/problem/2151
방문을 확인할 c 행렬을 3차원으로 해서 3번째 차수를 상하좌우에 대한 방문으로 사용
1. bfs에 입력할 문의 좌표에서 어느 방향으로 이동할 수 있는지 dir 변수에 저장한다
2. bfs로 다음칸에 방문하지 않았거나 현재 c 값보다 크다면 방문하여 갱신한다
3. 방문한 칸이 문이라면 ans에 저장하고 다음 반복문으로 넘어간다
4. 방문한 칸이 ! 라면 90도로 방향을 전환하고 c 값을 증가한다
5. bfs가 끝나면 ans 중 최소값을 출력
from collections import deque
import sys
input = sys.stdin.readline
dx = [0, 1, 0, -1]
dy = [1, 0, -1, 0]
def bfs(x, y, dir):
q.append([x, y, dir])
c[x][y][dir] = 1
ans = []
while q:
x, y, dir = q.popleft()
nx = x + dx[dir]
ny = y + dy[dir]
if 0 <= nx < n and 0 <= ny < n:
if not c[nx][ny][dir] or c[nx][ny][dir] > c[x][y][dir]:
if a[nx][ny] != '*':
c[nx][ny][dir] = c[x][y][dir]
if nx == fx and ny == fy:
ans.append(c[nx][ny][dir])
continue
q.append([nx, ny, dir])
if a[nx][ny] == '!':
turn(nx, ny, dir)
print(min(ans)-1)
def turn(x, y, dir):
ndir = [(dir+1) % 4, (dir+3) % 4]
for d in ndir:
if not c[x][y][d] or c[x][y][d] > c[x][y][dir] + 1:
c[x][y][d] = c[x][y][dir] + 1
q.append([x, y, d])
n = int(input())
q = deque()
c = [[[0]*4 for _ in range(n)] for _ in range(n)]
a, temp = [], []
for i in range(n):
row = list(input().strip())
a.append(row)
for j in range(n):
if row[j] == '#':
temp.extend([i, j])
sx, sy, fx, fy = temp
for i in range(4):
nx = sx + dx[i]
ny = sy + dy[i]
if 0 <= nx < n and 0 <= ny < n:
if a[nx][ny] != '*':
dir = i
break
bfs(sx, sy, dir)
'백준' 카테고리의 다른 글
백준 2178 미로 탐색 (파이썬) (0) | 2020.02.27 |
---|---|
백준 2931 가스관 (파이썬) (2) | 2020.02.26 |
백준 1981 배열에서 이동 (파이썬) (0) | 2020.02.25 |
백준 4991 로봇 청소기 (파이썬) (0) | 2020.02.25 |
백준 1039 교환 (파이썬) (1) | 2020.02.24 |
Comments