좌표 이동

형동킴·2022년 2월 6일
0
post-thumbnail

좌표이동의 대표적인 문제인 '상하좌우'를 예시로 들어 해당 유형의 해결 아이디어를 정리하고자 한다.



상하좌우 문제

  • 특정한 알고리즘이 필요한 문제가 아니기 때문에 주어진 조건에 따라 잘 구현하면 된다.



방향벡터 설정

방향벡터가 핵심이다!

move_types = ['L', 'R', 'U', 'D']
dx = [0, 0, -1, 1]
dy = [-1, 1, 0, 0]
  • 현 위치에서, 이동할 수 있는 특정 방향에 따라 얼마나 이동할 것인지 방향벡터로 정의해 둔다.
for plan in plans:
    for i in range(len(move_types)):
        if plan == move_types[i]:
            nx = x + dx[i]
            ny = y + dy[i]

    if nx > n or nx < 1 or ny > n or ny < 1:
        continue
    x, y = nx, ny
  • 그 외 나머지 제한 조건들은 순차적으로 구현하면 된다.
profile
결과보다 성장을!

0개의 댓글