[프로그래머스] 방문길이

yewon Lee·2023년 4월 23일
0


😎코딩테스트 연습>Summer/Winter Coding(~2018)>방문 길이


  1. 현재 좌표에서 이동할 좌표를 같이 배열에 넣는다.
  2. 같지 않은 좌표는 새로운 길
  3. 다른 좌표만 넣은 배열은 새로운 길의 길이가 된다.
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. 이동할 좌표로만 따지면 길은 다른데 좌표가 같아 답이 틀림
profile
시작

0개의 댓글