3190.蛇
質問する
コード#コード#
#3190. 뱀
dirs = [(-1, 0), (0, 1), (1, 0), (0, -1)]
d, sec = 1, 0 # 방향, 초
def play():
global d, sec
q = [(0,0)] # 뱀의 길이를 저장할 큐
while q:
i, j = q[-1]
arr[i][j] = -1 # 뱀 위치 기록
if sec in command:
if command[sec] == 'D':
d = (d+1)%4
else:
d = (d-1)%4
ni, nj = i+dirs[d][0], j+dirs[d][1]
if not (0<=ni<N) or not (0<=nj<N): # 하나라도 범위를 벗어나면 끝
return sec+1
elif arr[ni][nj] == -1: # 뱀 몸통에 닿으면 끝
return sec+1
if arr[ni][nj] == 1: # 사과 면
arr[ni][nj] = -1 # 사과 없애고 뱀 기록
q.append((ni,nj)) # 머리 붙여
else:
arr[ni][nj] = -1 # 경로 기록
q.append((ni,nj)) # 머리 앞으로
x, y = q.pop(0) # 꼬리 비우기
arr[x][y] = 0
sec += 1
N, K = int(input()), int(input())
arr = [[0]*N for _ in range(N)]
for _ in range(K):
c, r = map(int, input().split())
arr[c-1][r-1] = 1
L = int(input())
command = {}
for _ in range(L):
x, c = input().split()
command[int(x)] = c
print(play())
に答える
3つ目の例ではわかりませんでしたので調べてみると指紋の部分を見逃していました->https://www.acmicpc.net/board/view/47208
体を伸ばして、頭を先に出てから!!!りんごがあればそのまま、りんごがなければ再び体を縮めます!!頭が先に出ているので、例題3は頭を自分の体に埋めて、ゲームは終わりました.
私は実施問題を解決する時に奇妙に説明して、多くの困惑するものがあります...読めませんが、いつも重要な手がかりが見えません...アルゴリズムの問題はとても奇妙に書かれているようですが...
それも一拍(^v
Reference
この問題について(3190.蛇), 我々は、より多くの情報をここで見つけました https://velog.io/@jpdev/3190.-뱀テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol