[프로그래머스 Summer/Winter Coding(~2018) ] 방문 길이

문제

문제 링크

풀이

def solution(dirs):
    answer=''
    move = {'U': (0, 1), 'D': (0, -1), 'R': (1, 0), 'L': (-1, 0)}
    visited = set()
    x, y = 0, 0 
    for command in dirs:
        dx, dy = move[command]
        nx, ny = x + dx, y + dy
        if nx<-5:
            nx=-5
        elif ny<-5:
            ny=-5
        elif nx>5:
            nx=5
        elif ny>5:
            ny=5
        go = (x, y, nx, ny)
        back=(nx, ny,x, y)
        x, y = nx, ny   # move position

        if go[0]==go[2] and go[1]==go[3]:
            continue
        else:
            visited.add(go)
        if back in visited:
            visited.remove(back)
        
    return len(visited)

출처: 프로그래머스

좋은 웹페이지 즐겨찾기