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