프로그래머스 - 방문길이

Dean_Kang·2021년 7월 10일
0

프로그래머스

목록 보기
16/21

문제

(0,0)의 좌표평면에서 시작하는 캐릭터의 움직임이 주어진다. ex)"UDU" -> 위, 아래, 위 이때 캐릭터가 처음 가본 길의 길이만을 출력하는 문제이다.

코드

def solution(dirs):
    x = 0
    y = 0
    afterX = 0
    afterY = 0
    path = list()
    for i in dirs:
        if i == "U" and y + 1 <= 5:
            afterY += 1
        elif i == "D" and y - 1 >= -5:
            afterY -= 1
        elif i == "L" and x - 1 >= -5:
            afterX -= 1
        elif i == "R" and x + 1 <= 5:
            afterX += 1

        if not (x == afterX and y == afterY):
            if (afterX, afterY, x, y) not in path and (x, y, afterX, afterY) not in path:
                path.append((x, y, afterX, afterY))
        x = afterX
        y = afterY
    # print(path)
    answer = len(path) 
    return answer

설명

각 이동마다 이동하기 전의 좌표(x,y)와 이동 후의 좌표(afterX, afterY)를 표시하고 캐릭터가 5*5의 평면을 넘어서려고 하여 벽에 붇딪히거나 이미 지나왔던 길(x,y, afterX, after) or (afterX, afterY, x, y)을 가려고 한다면 path에 저장하지 않는다.

profile
for the goal

0개의 댓글

관련 채용 정보