알고리즘/프로그래머스 문제풀이

[프로그래머스] lv.1 공원 산책 python 풀이

감자156 2023. 10. 29. 19:46
반응형

문제

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

 

프로그래머스

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

programmers.co.kr

 

문제 풀이

구현문제. 시작점에서 주어진 방향으로 한칸씩 전진해보면서 범위를 벗어나거나 장애물을 만나면 해당 명령어를 무시한다.

 

코드

def find_start(park):
    for i in range(len(park)):
        for j in range(len(park[i])):
            if park[i][j] == 'S':
                return i, j
            
def solution(park, routes):
    dir_dict = {'E': (0,1), 'W': (0,-1), 'S': (1,0), 'N': (-1,0)}
    x, y = find_start(park)
    
    for i in routes:
        direction, cnt = i.split()
        nx, ny = x, y
        for _ in range(int(cnt)):
            nx += dir_dict[direction][0]
            ny += dir_dict[direction][1]

            if not(0<=nx<len(park) and 0<=ny<len(park[0]) and park[nx][ny] != 'X'):
                break
        else: x, y = nx, ny
        
    return [x, y]
반응형