https://school.programmers.co.kr/learn/courses/30/lessons/172928?language=python3
["방향 거리", "방향 거리" … ]park[i]는 다음 문자들로 이루어져 있으며 시작지점은 하나만 주어집니다.park에서 s를 찾아 시작 위치를 정합니다.route를 돌며 주어진 무시 명령에 포함될 경우 flag = False로 변경합니다.flag = False면 현재 위치를 변경하지 않습니다.def solution(park, routes):
# 시작 위치
start = [0,0]
r, c = len(park), len(park[0])
# 북, 남, 서, 동
dt = {
'N': [-1, 0],
"S": [1, 0],
"W": [0, -1],
"E": [0, 1],
}
for p in range(r):
if park[p].find("S") != -1:
start = [p, park[p].find("S")]
for r in routes:
d, n = r.split(" ") # 방향과 이동 횟수
mx, my = dt[d] # 방향 이동
x, y = start[0], start[1] # 현재 위치
flag = True
for i in range(1, int(n)+1):
nx = x + mx*i
ny = y + my*i
if nx < 0 or nx > len(park)-1 or ny < 0 or ny > len(park[0])-1:
flag = False
break
if park[nx][ny] == "X":
flag = False
break
if flag :
start = [nx, ny]
return start