본문 바로가기
Algorithm/etc

[파이썬] 프로그래머스 : 방문 길이 (Lv.2)

by 베짱이28호 2023. 7. 11.

[파이썬] 프로그래머스 : 방문 길이 (Lv.2)

 

 

프로그래머스

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

programmers.co.kr

 


풀이

방향성 생각

격자도 10x10이라서 set에 모든 경우 다 넣어도 11*11*2 = 242라서 구현

 

점 a에서 b 이동이나 b에서 a이동이나 똑같다.

전체코드

from collections import deque

def solution(dirs):
    q = deque(list(dirs))
    path = set()
    x,y = 0,0
    while q:
        d = q.popleft()
        if d == 'U' :
            if y+1 <= 5 :
                path.add(((x,y),(x,y+1)))
                path.add(((x,y+1),(x,y)))
                y += 1
        elif d == 'D':
            if y-1 >= -5 :
                path.add(((x,y),(x,y-1)))
                path.add(((x,y-1),(x,y)))
                y -= 1
        elif d == 'L':
            if x-1 >= -5 :
                path.add(((x-1,y),(x,y)))
                path.add(((x,y),(x-1,y)))
                x -= 1
        else : # R
            if x+1 <= 5 :
                path.add(((x+1,y),(x,y)))
                path.add(((x,y),(x+1,y)))
                x += 1
    return len(path)//2

 

코멘트

함수써서 지정해주면 좀 더 깔끔하게 풀 수 있었을듯. 복붙이라 크게 차이 없긴 하지만..

댓글