[PS] 미로 탈출 명령어

owo·2023년 2월 20일
0

PS

목록 보기
21/25

[문제 링크]

코드

def solution(n, m, x, y, r, c, k):
    # dlru
    nm = [0] * 4
    if x > r:
        nm[3] = x - r
    else:
        nm[0] = r - x
    if y > c:
        nm[1] = y - c
    else:
        nm[2] = c - y
        
    left = k - sum(nm) 
    if left < 0 or left % 2 == 1:
        return "impossible"
    left //= 2
    
    mx = n - max(x, r)
    my = min(y, c) - 1
    
    l = [0] * 3
    if mx > left:
        l[0] = left
    else:
        l[0] = mx
        left -= mx
        
    if my > left:
        l[1] = left
    else:
        l[1] = my
        left -= my
        l[2] = left
    
    return 'd' * (nm[0] + l[0]) + 'l' * (nm[1] + l[1]) + 'rl' * l[2] + 'r' * (nm[2] + l[1]) + 'u' * (nm[3] + l[0])

리뷰

  • 문제를 풀기 전에 손으로 그려보면서 어떤 상황인지 생각하고 푸는 것이 중요하다는 것을 다시 한번 느꼈다

0개의 댓글