큰 집단에서 데이터를 가져와야 할 때 제발 좀 해시, 해시를 생각해내자고 좀.
프로그래머스 Lv 3
출처 : https://programmers.co.kr/learn/courses/30/lessons/49994
알고리즘
알고리즘은 단순하다, 그저 정말로 방문한 길을 다 저장해버리면 그만이다.
단, 못가는 길을 막아야하므로, 범위에 조건을 걸어야 할 것이다.
그런데, 길이 몇백개인데, 그걸 다 한번의 이동마다 모두 조사는 불가능하므로, dict를 활용한다.
코드
def solution(dirs):
# coord를 어떻게 저장
x, y = 0, 0
# 이렇게 dict를 만들어버린다. key값은 중복될수 없다 활용.
coord = dict()
for cmd in dirs:
if cmd == 'U' and y < 5:
coord[(x, y, x, y+1)] = True
y += 1
elif cmd == 'D' and y > -5:
coord[(x, y-1, x, y)] = True
y -= 1
elif cmd == 'R' and x < 5:
coord[(x, y, x+1, y)] = True
x += 1
elif cmd == 'L' and x > -5:
coord[(x-1, y, x, y)] = True
x -= 1
answer = len(coord)
return answer
'알고리즘 & PS' 카테고리의 다른 글
[Python] 프로그래머스 Lv 2 - 최대 용량이 정해진 FIFO 큐 클래스 (0) | 2021.04.24 |
---|---|
[Python] 프로그래머스 Lv 3 - 게임아이템 (0) | 2021.04.23 |
[Python] 프로그래머스 Lv 3 - N-queen Problem (0) | 2021.04.22 |
[Python] 프로그래머스 Lv 3 - FloodFill (0) | 2021.04.22 |
[Python] 프로그래머스 Lv 3 - 빙고 (0) | 2021.04.22 |