Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스파르타코딩클럽 #코딩 #jQuery #Ajax
- #내일배움단 #코딩프로젝트 #국비지원 #내일배움카드 #스파르타코딩클럽
- 스파르타코딩클럽 #크롤링 #스크래핑
- 항해99솔직후기 #항해99 #부트캠프추천
- 부트스트랩 #Bootstrap #웹개발첫걸음 #스파르타코딩클럽
Archives
- Today
- Total
이모저모
방문길이 - 프로그래머스 본문
📝 알게 된 점이자 더 알아봐야 할 점
처음에는 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
'coding > 알고리즘,자료구조' 카테고리의 다른 글
DFS 연습 - 사다리타기 (0) | 2022.01.27 |
---|---|
타겟넘버 - 프로그래머스 (DFS로 풀기) (0) | 2022.01.27 |
결정 알고리즘 연습 - 말과 마구간 (0) | 2022.01.27 |
이진트리의 직렬화와 역직렬화(serialize and deserialize binary tree) (0) | 2022.01.26 |
결정 알고리즘 연습 - n개의 곡을 k개 음반에 담기 위한 최소 용량 (0) | 2022.01.26 |
Comments