[프로그래머스/Python] 방문 길이

Sujin Lee·2022년 11월 4일
0

코딩테스트

목록 보기
158/172
post-thumbnail

문제

프로그래머스 - 방문 길이

해결 과정

  • 현재 위치x,y를 정의, 방문한 경로를 담는 리스트 정의, 방향을 담은 딕셔너리를 정의
  • for문
    • 현재 위치에서 움직였을 때 범위 안에 있는지 확인
    • 움직인 경로를 저장: a에서 b로 같을 때 (a,b),(b,a) 둘 다 저장
    • 현재 위치를 바꿔줌

시행착오

  • 출발지점과 도착지점이 반대여도 같은 간선
    (출발지점x, 출발지점y, 도착지점x, 도착지점y)
    (도착지점x, 도착지점y, 출발지점x, 출발지점y)로 두가지 경우를 모두 튜플로 저장

풀이

def solution(dirs):
    x,y = 0,0
    visited = set()
    direction = {'U':[0,1],'D':[0,-1],'R':[1,0],'L':[-1,0]}
    
    for i in dirs:
        if -5 <= x + direction[i][0] <= 5 and -5 <= y + direction[i][1] <= 5:
            visited.add(((x,y),(x + direction[i][0], y + direction[i][1])))
            visited.add(((x + direction[i][0], y + direction[i][1]), (x,y)))
            x,y = x + direction[i][0], y + direction[i][1]
    
    return len(visited)//2
profile
공부한 내용을 기록하는 공간입니다. 📝

0개의 댓글