Python/Programmers

[프로그래머스/Python] Lv 1. 공원산책

hwangzzi 2023. 4. 21. 02:27

⭐ 문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/172928

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

⭐ 풀이 코드

def solution(park, routes):

    x, y = 0, 0  # 시작점
    w, h = len(park[0]), len(park)  # 가로, 세로
    op = {"N":(-1,0), "S":(1,0), "W":(0,-1), "E":(0,1)}
    
    # 시작점
    for i in range(h):
        for j in range(w):
            if park[i][j]=="S":
                x, y = i, j
                break
        
    # 좌표이동
    for r in routes:
        d, n = r.split(" ") # 방향, 이동횟수
        dx, dy = x, y  # 현재위치
        
        for i in range(int(n)):
            # 이동할 위치
            nx = x + op[d][0]
            ny = y + op[d][1]
        
            if 0<=nx<=h-1 and 0<=ny<=w-1 and (park[nx][ny]!="X"):
                x, y = nx, ny
                    
            else:
                x, y = dx, dy
                break

    return (x,y)