세용용용용 2023. 7. 23. 16:49

나의 코드

def solution(dirs):
    answer = 0
    #현재위치
    x,y = 0,0
    #상하좌우 움직이는 위치 담은 딕셔너리
    dict_dirs = {'U':[0,1], 'D':[0,-1], 'L':[-1,0], 'R':[1,0]}
    #이동경로 리스트
    pass_list = []

    #dirs이동 for문 돌림
    for i in dirs:
        #만약 좌표범위 -5,5 를초과시 continue
        if (abs(x+dict_dirs[i][0]) > 5) or (abs(y+dict_dirs[i][1]) > 5):
            continue
       
        #움직인 리스트 정의후 정렬해줌
        move_list = [[x,y], [x+dict_dirs[i][0], y+dict_dirs[i][1]]]
        move_list.sort()

        #만약 이동경로 리스트에 움직인 리스트가 없으면 answer증감
        #이동경로에 움직인 리스트 넣어줌
        if move_list not in pass_list:
            pass_list.append(move_list)
            answer+=1

        #현재위치 변경
        x,y = x+dict_dirs[i][0], y+dict_dirs[i][1]
    #print(answer)    
    return answer
solution("ULURRDLLU")