[구름 LEVEL] GameJam
· 주어진 규칙에 따라 두 사람이 게임을 진행했을 때, 이긴 사람의 이름과 점수 출력

· 규칙에 따라 말을 이동했을 때, 말이 이미 방문했던 자리를 방문할 경우 게임을 종료하고, 말이 이동한 거리를 반환
def play_game(n, x, y, board):
# 방향을 나타내는 딕셔너리
directions = {'U': (-1, 0), 'D': (1, 0), 'R': (0, 1), 'L': (0, -1)}
# 방문한 위치를 기록하는 2차원 리스트
visited = [[False] * n for _ in range(n)]
score = 0
# 현재 위치를 방문하지 않은 동안 반복
while not visited[x][y]:
# 현재 위치의 명령 계산
count = int(board[x][y][:-1]) # 숫자 부분
command = board[x][y][-1] # 방향 부분
dx, dy = directions[command] # 방향에 따른 이동 값
# 명령된 횟수만큼 이동
for _ in range(count):
if not visited[x][y]: # 현재 위치를 방문하지 않았다면
visited[x][y] = True # 현재 위치를 방문한 것으로 표시
score += 1 # 점수 증가
# 다음 위치로 이동 (보드가 원형이므로 % n 사용)
x = (x + dx) % n
y = (y + dy) % n
else: # 이미 방문한 위치라면 이동 중지
break
# 최종 점수 반환
return score
# 보드 크기 입력 받기
n = int(input())
# 두 사람의 시작 위치 입력 받기 (인덱스를 0부터 시작하도록 조정)
x_g, y_g = map(lambda x: int(x) - 1, input().split())
x_p, y_p = map(lambda x: int(x) - 1, input().split())
# 보드 상태 입력 받기
board = [input().split() for _ in range(n)]
# goorm과 player의 점수 계산
score_g = play_game(n, x_g, y_g, board)
score_p = play_game(n, x_p, y_p, board)
# 더 높은 점수를 얻은 사람과 그 점수를 출력
print("goorm" if score_g > score_p else "player", max(score_g, score_p))
