10일차 미션 문제
우선 문제 이해를 하기 위해 적어봅니다!
요약하면 각각 플레이어가 각자의 위치에서 이동하면서 발생하는 점수를 비교하는 것!
'''
1 - 격자 보드의 크기
2 구름이가 말을 올려둔 칸의 좌표 행 열
3 플레이어가 말을 올려둔 칸의 좌표 행 열
n 각 지시사항 이동횟수 이동방향(UDRL)
이동중에 보드 밖으로 나가면 반대쪽의 첫번째칸으로 이동한다
4번 반복 중 이동하다가 이미 한번 방문한 칸을 지나야하는 경우에는 종료
시작 칸을 포함하여 종료되기 전까지 말이 방문한 서로 다른 칸의 개수
return goorm 구름점수 / player 플레이어점수 / 비기는건X
'''
'''
1g 2 3g
4 5 6pg
7 8 9ppg
1 2 3 4p
5 6 7 8p
8 10 11 12
13 14gg 15 16pp
'''
'''
- 구름이와 플레이어의 방문 기록을 관리하는 행렬
- 이동 명령에 따른 방향 관리
- 보드의 범위 밖으로 나갔을 때, 좌표를 반대쪽 첫 번째 칸으로 이동하는 기능
'''
음 인풋값을 받고 보드와 시작점은 작성을 했는데
이동하면서 계산할 방법이 안떠올라서 실패했습니당..
size = int(input())
g = list(map(int, input().split(' ')))
p = list(map(int, input().split(' ')))
g_score, p_score = 0, 0
gx, gy = g[0]-1, g[1]-1
px, py = p[0]-1, p[1]-1
print(g, p)
board = []
for i in range(size):
arr = input().split(' ')
board.append(arr)
g_cmd = board[gx][gy]
p_cmd = board[px][py]
print('-----------------',g_cmd, p_cmd )
cnt = 0
# while cnt <= 3:
# for i in range(size):
# for j in range(size):
# print(i, j)
# print(g[0]-1, g[1]-1)
print(board)
정답을 보고 작성한 코드입니다~ ㅠ
def play(sy, sx, N):
y, x = sy, sx
visited = [[0] * N for _ in range(N)]
visited[y][x] = 1
notEnd = True
while notEnd:
cnt = count[y][x]
dy, dx = cmd[y][x]
for _ in range(cnt):
y = (y + dy) % N # 범위를 벗어나는 경우를 처리
x = (x + dx) % N
if visited[y][x]:
notEnd = False
break
visited[y][x] = 1
return sum([sum(i) for i in visited])
size = int(input())
g = list(map(int, input().split(' ')))
p = list(map(int, input().split(' ')))
gx, gy = g[0]-1, g[1]-1
px, py = p[0]-1, p[1]-1
board = []
for i in range(size):
arr = input().split(' ')
board.append(arr)
count = [[0] * size for _ in range(size)]
cmd = [[None] * size for _ in range(size)]
direction = {'L': [0,-1], 'R': [0,1], 'U': [-1,0], 'D':[1,0]} # 각 방향에 대해 미리 선언해두기 if문을 줄일 수 있다.
for i in range(size):
for j in range(size):
tmp = board[i][j]
count[i][j] = int(tmp[:-1])
key = tmp[-1]
cmd[i][j] = direction[key]
g_score = play(gx, gy, size)
p_score = play(px, py, size)
if g_score > p_score:
print("goorm", g_score)
else:
print("player", p_score)
728x90
반응형
'알고리즘' 카테고리의 다른 글
[구름톤챌린지] day 2 프로젝트 매니징 python (0) | 2023.08.15 |
---|---|
[구름톤챌린지] day 1 운동 중독 플레이어 python (0) | 2023.08.15 |
댓글