본문 바로가기

프로그래밍 회고록/Python

2021.10.27 코테_게임 개발

728x90
반응형

# 오늘의 문제

게임 개발

 # 나의 코드

Null

# 정답과의 비교

1.  오늘 문제는 정말 어떻게 시작해야할지 감이 안와서 손을 못댔다. 그렇게 해설을 보면서 조금씩 이해해서 해당 코드를 옮겨적는 수준으로 해결했다. 다음날 다음번 코테때 이 문제를 해답을 안보고 다시 도전할것이다.

n,m = map(int , input().split())
d = [[0]*m for _ in range(n)]
x,y,di = map(int , input().split())

#북동남서
dx = [-1, 0, 1, 0]
dy = [0, 1, 0, -1]

d[x][y] = 1

array = []
for i in range(n):
  array.append(list(map(int , input().split())))

def turnLeft():
  global di
  di -= 1
  if di == -1:
    di = 3

cnt = 1
turnTime = 0

while True:
  turnLeft()
  nx = x + dx[di]
  ny = y + dy[di]

  #가본적이 없거나 갈 수 있는 칸이 존재하면 이동
  if d[nx][ny] == 0 and array[nx][ny] == 0:
    d[nx][ny] = 1
    x = nx
    y = ny
    cnt += 1
    turnTime = 0
  
  #가본칸이 있거나 바다인경우
  else:
    turnTime += 1
  
  if turnTime == 4:
    nx = x - dx[di]
    ny = y - dy[di]

    if array[nx][ny] == 0:
      x = nx
      y = ny
    else:
      break
    turnTime = 0

print(cnt)
728x90

'프로그래밍 회고록 > Python' 카테고리의 다른 글

2021.11.13 코테_BFS 예시코드  (0) 2021.11.13
2021.11.13 코테_DFS 예시코드  (0) 2021.11.13
2021.10.25 코테_왕실의 나이트  (0) 2021.10.26
2021.10.25 코테_시각  (0) 2021.10.25
2021.10.24 코테_상하좌우  (0) 2021.10.24