😎코딩테스트 연습>Summer/Winter Coding(~2018)>방문 길이
- 현재 좌표에서 이동할 좌표를 같이 배열에 넣는다.
- 같지 않은 좌표는 새로운 길
- 다른 좌표만 넣은 배열은 새로운 길의 길이가 된다.
def solution(dirs):
#왼쪽에서 오른쪽과 오른쪽에서 왼쪽은 같은길
#같은 좌표끼리 들어가면x
road = []
#현재 좌표
x1 = 0
y1 = 0
#이동할 좌표
x = 0
y = 0
for i, d in enumerate(dirs):
if d == 'U':
if y < 5:
y = y + 1
elif d == 'D':
if y > -5:
y = y - 1
elif d == 'R':
if x < 5:
x = x + 1
else:
if x > -5:
x = x - 1
if [[x1, y1],[x, y]] not in road and [[x, y],[x1, y1]] not in road and [x1, y1] != [x, y]:
road.append([[x1, y1],[x, y]])
x1 = x
y1 = y
return len(road)
※주의할 점※
1. 현재 좌표와 이동할 좌표가 같은 건 배열에 들어가면 안됨
[x1, y1] != [x, y]
2. 왼쪽->오른쪽과 오른쪽->왼쪽은 같은 길
[[x1, y1],[x, y]] not in road and [[x, y],[x1, y1]] not in road
3. 이동할 좌표로만 따지면 길은 다른데 좌표가 같아 답이 틀림