이모저모

방문길이 - 프로그래머스 본문

coding/알고리즘,자료구조

방문길이 - 프로그래머스

Jeo 2022. 1. 27. 11:30

📝 알게 된 점이자 더 알아봐야 할 점

처음에는 path_set이라고 명명한 set에 원소로서 좌표쌍의 set을 넣으려고 했는데 type error였다.

살짝 찾아보니 set의 원소로서 set이나 list같은 자료형은 불변자료가 아니라서 사용할 수 없는 것 같았다.

일단 이 문제를 풀 때는 튜플을 원소로 쓰고 대신 양방향 처리를 위해서 쌍의 위치를 뒤집어서도 한 번 더 저장했다.

더 좋은 방법이 있는지 알아봐야겠고, 자료형의 특성에 대해서도 공부해야겠다.

def solution(dirs):
    x = 5
    y = 5
    path_set = set()

    for i in range(len(dirs)):
        tmp = (x, y)
        if dirs[i] == "U":
            if x-1 >= 0:
                path_set.add((tmp, (x-1, y)))
                path_set.add(((x-1, y), tmp))
                x -= 1
            else:
                continue
        elif dirs[i] == "D":
            if x+1 <= 10:
                path_set.add((tmp, (x+1, y)))
                path_set.add(((x+1, y), tmp))
                x += 1
            else:
                continue
        elif dirs[i] == "L":
            if y-1 >= 0:
                path_set.add((tmp, (x, y-1)))
                path_set.add(((x, y-1), tmp))
                y -= 1
            else:
                continue
        elif dirs[i] == "R":
            if y+1 <= 10:
                path_set.add((tmp, (x, y+1)))
                path_set.add(((x, y+1), tmp))
                y += 1
            else:
                continue
    answer = int(len(path_set) / 2)
    return answer
Comments