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
- Vocoder
- 한국어 tts
- TTS
- 딥러닝 음성 합성
- 윈도우
- 노래합성
- 딥러닝
- deep voice
- korean tts
- 보코더
- 한국어 음성 합성
- 타코트론
- 학습
- singing voice synthesis
- 딥러닝 보코더
- tacotron
- text-to-speech
- 음성 합성
- 트레이닝
- DCTTS
- you only look once
- melgan
- waveglow
- YOLO
Archives
- Today
- Total
chldkato
백준 17070 파이프 옮기기 1 (파이썬) 본문
https://www.acmicpc.net/problem/17070
dfs 안에 반복문을 넣고 이동하면 시간 초과가 발생했다
1. dfs에 (0, 1) 좌표와 shape 변수를 입력한다. shape에서 가로는 0, 세로는 1, 대각선은 2로 표시한다
2. dfs로 이동면서 (n-1, n-1)에 도착하면 횟수를 증가시킨다
3. 다음 이동을 가로, 세로, 대각선으로 이동할 수 있는지 각각 검사한다
대각선의 경우 4칸을 차지하기 때문에 a[x+1][y], a[x][y+1]에 벽이 없는지 확인해야한다
import sys
input = sys.stdin.readline
def dfs(x, y, shape):
global ans
if x == n-1 and y == n-1:
ans += 1
return
if shape == 0 or shape == 2:
if y + 1 < n:
if a[x][y+1] == 0:
dfs(x, y+1, 0)
if shape == 1 or shape == 2:
if x + 1 < n:
if a[x+1][y] == 0:
dfs(x+1, y, 1)
if shape == 0 or shape == 1 or shape == 2:
if x + 1 < n and y + 1 < n:
if a[x+1][y] == 0 and a[x][y+1] == 0 and a[x+1][y+1] == 0:
dfs(x+1, y+1, 2)
n = int(input())
a = [list(map(int, input().split())) for _ in range(n)]
ans = 0
dfs(0, 1, 0)
print(ans)
'백준' 카테고리의 다른 글
백준 17136 색종이 붙이기 (파이썬) (0) | 2020.04.23 |
---|---|
백준 17135 캐슬 디펜스 (파이썬) (0) | 2020.04.23 |
백준 16637 괄호 추가하기 (파이썬) (0) | 2020.04.21 |
백준 12100 2048 (Easy) (파이썬) (1) | 2020.04.19 |
백준 3190 뱀 (파이썬) (0) | 2020.04.19 |
Comments