본문 바로가기
프로그래머스/1단계

(Python/LV1)공원 산책

by windy7271 2023. 4. 1.
728x90
반응형

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/172928

 

프로그래머스

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

programmers.co.kr

풀이:

def solution(park, routes):
    answer = []
    start = []

    for i in range(len(park)):
        if 'S' in park[i]:
            start = [i, park[i].find('S')]
            break
    print(start)
    for route in routes:
        dir, move = route.split(' ')
        move = int(move)

        if dir == 'E':
            loc = start[1] + move
            if loc >= len(park[0]):
                continue
            if 'X' in park[start[0]][start[1]+1:loc+1]:
                continue
            else:
                start[1] = loc

        elif dir == 'W':
            loc = start[1] - move
            if loc < 0:
                continue
            if 'X' in park[start[0]][loc:start[1]]:
                continue
            else:
                start[1] = loc

        elif dir == 'S':
            loc = start[0] + move
            if loc >= len(park):
                continue
            if 'X' in [park[i][start[1]] for i in range(start[0]+1,loc+1)]:
                continue
            else:
                start[0] = loc

        elif dir == 'N':
            loc = start[0] - move
            if loc < 0:
                continue
            if 'X' in [park[i][start[1]] for i in range(loc,start[0])]:
                continue
            else:
                start[0] = loc

    return start
반응형

댓글