[Py_Lv2] 방문 길이

Sunghun📈·2021년 12월 5일
0

프로그래머스

목록 보기
92/93
post-thumbnail

- 문제 설명

게임 캐릭터를 4가지 명령어를 통해 움직이려 합니다. 명령어는 다음과 같습니다.

U: 위쪽으로 한 칸 가기

D: 아래쪽으로 한 칸 가기

R: 오른쪽으로 한 칸 가기

L: 왼쪽으로 한 칸 가기

캐릭터는 좌표평면의 (0, 0) 위치에서 시작합니다. 좌표평면의 경계는 왼쪽 위(-5, 5), 왼쪽 아래(-5, -5), 오른쪽 위(5, 5), 오른쪽 아래(5, -5)로 이루어져 있습니다.

프로그래머스 - 방문 길이

- 제한 사항

  • dirs는 string형으로 주어지며, 'U', 'D', 'R', 'L' 이외에 문자는 주어지지 않습니다.
  • dirs의 길이는 500 이하의 자연수입니다.

- 입출력 예

입출력 예 설명
입출력 예 #1
문제의 예시와 같습니다.

입출력 예 #2
문제의 예시와 같습니다.

- 접근법

구현 시 중요하게 생각해야될 부분은 중복된 경로는 포함하지 않는다.
그리고 5X5크기에 좌표판 안에서만 움직여야하며 좌표를 넘어서는 경우는
제외한다는 부분이다.


def solution(dirs):
    move = {'U' : (0, 1), 'D' : (0, -1), 'L' : (-1, 0), 'R' : (1, 0)}
    visited = set()
    x, y = 0, 0
    
    
    for command in dirs:
        dx, dy = move[command]
        nx, ny = x + dx, y + dy
    
        if -5 <= nx <= 5 and -5 <= ny <= 5:
            visited.add((x, y, nx, ny))
            visited.add((nx, ny, x, y))
            x, y = nx, ny
        
    return len(visited) // 2
    
profile
데이터 분석과 AI 분야의 전문가를 꿈꾸는 청년

0개의 댓글