프로그래머스. Level 2. 방문 길이 파이썬 풀이
문제링크 https://programmers.co.kr/learn/courses/30/lessons/49994
def solution(dirs):
answer = 0
# 걸어본 길을 담을 배열
array = []
# 처음 위치 0,0
x, y = 0, 0
# 길을 담을 때 양방향을 모두 고려하여 배열에 추가한다.
for s in dirs:
if s == 'U':
if y+1 > 5:
continue
y += 1
array.append((y, x, y-1, x))
array.append((y-1, x, y, x))
elif s == 'D':
if y-1 < -5:
continue
y -= 1
array.append((y, x, y+1, x))
array.append((y+1, x, y, x))
elif s == 'L':
if x-1 < -5:
continue
x -= 1
array.append((y, x, y, x+1))
array.append((y, x+1, y, x))
else:
if x+1 > 5:
continue
x += 1
array.append((y, x, y, x-1))
array.append((y, x-1, y, x))
# set을 이용해 중복을 제거한다.
array = set(array)
# 양방향을 고려했기 때문에 배열의 크기에 2를 나눠 리턴
return len(array)/2