문제 : https://programmers.co.kr/learn/courses/30/lessons/49994
▶ 코드
import copy
def solution(dirs):
path = [] # 지나간 길 ex) [0,0,1,0] : (0,0) -> (1,0)
last = [0,0]
for a in dirs:
temp = copy.deepcopy(last)
if a == 'U':
last[1] +=1
if last[1] <= 5 and last[1] >= -5:
if (temp + last) not in path and (last + temp) not in path:
path.append(temp + last)
else:
last[1] -=1 # 범위 넘었을 경우 이동경로 다시 되돌려주기
elif a == 'D':
last[1] -=1
if last[1] <= 5 and last[1] >= -5:
if (temp + last) not in path and (last + temp) not in path:
path.append(temp + last)
else:
last[1] +=1 # 범위 넘었을 경우 이동경로 다시 되돌려주기
elif a == 'R':
last[0] +=1
if last[0] <= 5 and last[0] >= -5:
if (temp + last) not in path and (last + temp) not in path:
path.append(temp + last)
else:
last[0] -=1 # 범위 넘었을 경우 이동경로 다시 되돌려주기
elif a == 'L':
last[0] -=1
if last[0] <= 5 and last[0] >= -5:
if (temp + last) not in path and (last + temp) not in path:
path.append(temp + last)
else:
last[0] += 1 # 범위 넘었을 경우 이동경로 다시 되돌려주기
#print(last)
#print(path)
#print(len(path))
return len(path)
#solution("ULURRDLLU")
#solution("LULLLLLLU")
#solution("LR") # 1이 나와야 한다.
#solution("L")
'■코테 기출문제 > Summer,Winter Coding(~2018)' 카테고리의 다른 글
[Level 4] 쿠키 구입 (0) | 2020.05.22 |
---|---|
[Level 3] 숫자 게임 (0) | 2020.05.12 |
[Level 2] 영어 끝말잇기 (0) | 2020.05.08 |
[Level 2] 점프와 순간 이동 (0) | 2020.05.08 |
[Level 2] 소수 만들기 (0) | 2020.05.08 |
[Level 3] 기지국 설치 (0) | 2020.05.08 |
[Level 3] 배달 (0) | 2020.05.08 |
[Level 1] 예산 (0) | 2020.05.06 |