Algorithm/1일 1코테
[🥰 프로그래머스] 공원 산책
대인보우
2023. 8. 18. 18:57
반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/172928
풀이
dx = {'N':-1, 'S':1, 'E':0, 'W': 0}
dy = {'N': 0, 'S':0, 'E':1, 'W':-1}
def solution(park, routes):
answer = []
x, y = -1, -1 # 시작점
N, M = len(park), len(park[0]) # 공원의 가로세로
# 시작점 찾기
for i in range(N):
for j in range(M):
if park[i][j] == 'S':
x, y = i, j
for route in routes:
# 방향, 이동 숫자
dir_, dist = route.split(' ')
isFalse = False
for i in range(1, int(dist) + 1):
# 모두 이동했을 경우의 좌표
nx, ny = x + dx[dir_] * i, y + dy[dir_] * i
# 공원 벗어나면 out
if nx < 0 or ny < 0 or nx > N-1 or ny > M-1:
isFalse = True
break
# 지뢰가 있어도 out
if park[nx][ny] == 'X':
isFalse = True
break
# 아웃일 경우는 실행 x
if isFalse:
continue
nx, ny = x + dx[dir_] * int(dist), y + dy[dir_] * int(dist)
x, y = nx, ny
answer = [x, y]
return answer
반응형