프로그래머스 LV2 - 방문 길이
내 풀이
def valid_move(x,y):
return -5 <= x <= 5 and -5 <= y <= 5
def solution(dirs):
# -5 <= x <= 5, -5 <= y <= 5 인 좌표만 유효함
direction = {'U': (0,1), 'D': (0,-1),'L': (-1,0), 'R': (1,0)}
point = [] # 지나간 좌표
x = 0
y = 0 # 초기 좌표
for dir in dirs:
dx , dy = direction[dir]
if valid_move(x+dx, y+dy):
x1 = x
y1 = y
x += dx
y += dy
if [x1,y1,x,y] not in point and [x,y,x1,y1] not in point:
point.append([x1,y1,x,y])
return len(point)
풀이 해석
- 4가지 방향에 대해 dict타입으로 선언후 지니간 좌표를 담을 list를 생성
- dirs를 for문을 통해 읽으며 이동한다
- 이 때 x, y는 범위를 넘지 않아야하며 이를 함수로 제한하였다
- 지나간 좌표중에 한쪽방향과 뒤집은 방향이 모두 없을 경우에만 append해준다
댓글남기기