본문 바로가기
ps/programmers

공원 산책

by choi-dev 2024. 2. 24.

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

 

프로그래머스

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

programmers.co.kr

 

내 코드

# 공원 산책
# 프로그래머스 https://school.programmers.co.kr/learn/courses/30/lessons/172928

def solution(park, routes):
    """ 문제 분석
    park의 길이는 50, routes의 길이도 50
    N은 북쪽, S는 서쪽, N은 남쪽, E는 동쪽을 의미
    x, y라고 했을 때, 동쪽으로 움직일 경우 y + 1, 서쪽은 y - 1, 남쪽은 x + 1, 북쪽은 x - 1이 된다.
    1. park 배열에서 S는 시작지점을 의미하므로 반복문을 통해 S가 있으면 위치 저장
    2. routes 배열에서 받는 위치 이동을 시켜서 결과 리턴
    """
    answer = []
    x = 0
    y = 0
    for i in range(len(park)):
        if 'S' in park[i]:
            x = i
            y = park[i].find('S')
    
    for route in routes:
        way = route.split()[0]
        cnt = int(route.split()[1])
        mx = x
        my = y

        for i in range(cnt):
            if (way == 'E'):
                my += 1
            if (way == "W"):
                my -= 1
            if (way == 'S'):
                mx += 1
            if (way == 'N'):
                mx -= 1
            
            if (mx >= 0 and my >= 0 and mx < len(park) and my < len(park[0])):
                if park[mx][my] == 'X':
                    break
                if i == cnt - 1:
                    x = mx
                    y = my
        
    return [x, y]

print(solution(["SOO","OXX","OOO"], ["E 2","S 2","W 1"]))

자바 때 한 번 풀어본 문제를 파이썬으로 복습했다. 상대 코드 또한 대부분 풀이가 비슷하기 때문에 따로 적진 않겠다.

'ps > programmers' 카테고리의 다른 글

대충 만든 자판  (0) 2024.02.25
덧칠하기  (0) 2024.02.25
바탕화면 정리  (0) 2024.02.25
추억 점수  (0) 2024.02.24
달리기 경주  (0) 2024.02.24