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
- 딥러닝
- 학습
- melgan
- 보코더
- 윈도우
- text-to-speech
- TTS
- YOLO
- 딥러닝 보코더
- 음성 합성
- 한국어 tts
- you only look once
- 타코트론
- 트레이닝
- deep voice
- DCTTS
- korean tts
- singing voice synthesis
- 한국어 음성 합성
- tacotron
- waveglow
- Vocoder
- 딥러닝 음성 합성
- 노래합성
Archives
- Today
- Total
chldkato
백준 17837 새로운 게임 2 (파이썬) 본문
https://www.acmicpc.net/problem/17837
1. chess_map에 말의 번호를 쌓인 순서대로 저장하고 chess에는 말의 좌표, 방향을 저장한다
2. 말의 번호 순서대로 move 함수에 입력하여 이동한다
3. 다음 칸이 2인 경우를 먼저 처리한다
방향을 전환해도 2이거나 범위 밖이면 return한다
4. chess_set은 입력받은 번호에 해당하는 체스말과 그 위에 쌓인 체스말을 저장한다
5. 다음 칸이 1이면 chess_set을 뒤집는다
6. chess_set의 체스말을 순서대로 꺼내 다음 칸에 저장하고 이동한 체스말의 좌표를 갱신한다
7. 쌓인 말의 수가 4를 넘으면 1을 return한다
8. 1을 받으면 그동안 기록한 cnt를 출력한다
import sys
input = sys.stdin.readline
dx = [0, 0, -1, 1]
dy = [1, -1, 0, 0]
def move(chess_num):
x, y, z = chess[chess_num]
nx = x + dx[z]
ny = y + dy[z]
if not 0 <= nx < n or not 0 <= ny < n or a[nx][ny] == 2:
if 0 <= z <= 1:
nz = (z+1) % 2
else:
nz = (z-1) % 2 + 2
chess[chess_num][2] = nz
nx = x + dx[nz]
ny = y + dy[nz]
if not 0 <= nx < n or not 0 <= ny < n or a[nx][ny] == 2:
return 0
chess_set = []
for i, key in enumerate(chess_map[x][y]):
if key == chess_num:
chess_set.extend(chess_map[x][y][i:])
chess_map[x][y] = chess_map[x][y][:i]
break
if a[nx][ny] == 1:
chess_set = chess_set[-1::-1]
for i in chess_set:
chess_map[nx][ny].append(i)
chess[i][:2] = [nx, ny]
if len(chess_map[nx][ny]) >= 4:
return 1
return 0
n, k = map(int, input().split())
a = [list(map(int, input().split())) for _ in range(n)]
chess_map = [[[] for _ in range(n)] for _ in range(n)]
chess = [0 for _ in range(k)]
for i in range(k):
x, y, z = map(int, input().split())
chess_map[x-1][y-1].append(i)
chess[i] = [x-1, y-1, z-1]
cnt = 1
while cnt <= 1000:
for i in range(k):
flag = move(i)
if flag:
print(cnt)
sys.exit()
cnt += 1
print(-1)
'백준' 카테고리의 다른 글
백준 17822 원판 돌리기 (파이썬) (0) | 2020.03.06 |
---|---|
백준 17780 새로운 게임 (파이썬) (0) | 2020.03.06 |
백준 17779 게리맨더링 2 (파이썬) (0) | 2020.03.05 |
백준 17140 이차원 배열과 연산 (파이썬) (0) | 2020.03.04 |
백준 16235 나무 재테크 (파이썬) (2) | 2020.03.04 |
Comments