[프로그래머스] 공원 산책

Seohyun·2024년 8월 31일

알고리즘

목록 보기
27/36
def solution(park, routes):
    answer = [0, 0]
    h, w = len(park), len(park[0])
    for i in range(h):
        for j in range(w):
            if park[i][j] == 'S':
                answer[0] = i
                answer[1] = j
                break
                break
    print(answer)
    for r in routes:
        d, m = r.split(' ')
        m = int(m)
        if d == 'E':
            if answer[1] + m >= w:
                continue
            for i in range(1, m+1):
                if park[answer[0]][answer[1]+i] == 'X':
                    m = 0
                    break
            answer[1] += m
        elif d == 'W':
            if answer[1] - m < 0:
                continue
            for i in range(1, m+1):
                if park[answer[0]][answer[1]-i] == 'X':
                    m = 0
                    break
            answer[1] -= m
        elif d == 'S':
            if answer[0] + m >= h:
                continue
            for i in range(1, m+1):
                if park[answer[0]+i][answer[1]] == 'X':
                    m = 0
                    break
            answer[0] += m
        else:
            if answer[0] - m < 0:
                continue
            for i in range(1, m+1):
                if park[answer[0]-i][answer[1]] == 'X':
                    m = 0
                    break
            answer[0] -= m
    return answer

이런 조건이 많은 문제는 오히려 더 헷갈리는 것 같다... 풀기 어려운 문제는 아니었다.

profile
Hail hamster

0개의 댓글