728x90
반응형
문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/49994
풀이:
def solution(dirs):
count = 0
start =[]
start.append([0,0])
for i in dirs:
if i == "L":
start.append([ start[-1][0] -1, start[-1][1] ])
elif i == "R":
start.append([ start[-1][0] +1, start[-1][1] ])
elif i == "U":
start.append([ start[-1][0] , start[-1][1] +1 ])
elif i == "D":
start.append([ start[-1][0] , start[-1][1] -1 ])
set_list = list(set(map(tuple,start)))
for x, y in set_list:
if abs(x) > 5 or abs(y) > 5:
count += 1
return len(set_list) - count
코드 실행만 맞춤,,
[] 를 다 하고 중복을 제거하는것보다
set을 선언후 넣어주는게 더 유리하다고 생각한다.
def solution(dirs):
start = set()
x = 0; y = 0
for d in dirs:
if d == 'U' and y < 5:
start.add(((x, y), (x, y+1)))
y += 1
elif d == 'D' and y > -5:
start.add(((x, y-1), (x, y)))
y -= 1
elif d == 'R' and x < 5:
start.add(((x, y), (x+1, y)))
x += 1
elif d == 'L' and x > -5:
start.add(((x-1, y), (x, y)))
x -= 1
return len(start)
반응형
댓글