LV 2: 방문 길이

ewillwin·2023년 9월 7일
0

문제 링크

LV 2: 방문 길이


구현 방식

  • 문제에서 안내한대로 구현해주면 된다
  • d라는 dictionary를 이용해 각 명령어 'U', 'D', 'R', 'L'를 해당하는 변위값으로 바로 변환할 수 있게 해주었다
  • visit라는 set을 이용해 해당 길이 처음 걸어본 길인지 아닌지를 판별해주었다
    • 이 부분에선 1)'길' 단위로 값을 확인 및 삽입해줘야하고, 2)캐릭터가 (x1, y1)에서 (x2, y2)로 이동한다고 치면, (x1, y1, x2, y2), (x2, y2, x1, y1)을 모두 확인 및 삽입해줘야한다

코드

def solution(dirs):
    
    d = {"U": (1, 0), "D": (-1, 0), "R": (0, 1), "L": (0, -1)}
    
    answer = 0; x = 0; y = 0
    visit = set()
    for dir in dirs:
        nx = x + d[dir][0]; ny = y + d[dir][1]
        if -5 <= nx <= 5 and -5 <= ny <= 5:
            if (x, y, nx, ny) not in visit and (nx, ny, x, y) not in visit:
                visit.add((x, y, nx, ny)); visit.add((nx, ny, x, y))
                answer += 1
                x = nx; y = ny
            else:
                x = nx; y = ny
                
    return answer
profile
💼 Software Engineer @ LG Electronics | 🎓 SungKyunKwan Univ. CSE

0개의 댓글