[백준/파이썬] 1952번 달팽이2 풀이

업데이트:



문제 정보


풀이

문제

M x N 격자를 달팽이처럼 이동할 때 방향 전환 횟수를 구하는 문제입니다.

코드

m,n=map(int,input().split())
a=b=x=y=1
c=0
while True:
    if c%4==0: x+=1
    elif c%4==1: y+=1
    elif c%4==2: x-=1
    else: y-=1
    if not(a<=y<=m) or not(b<=x<=n):
        if c%4==0: a+=1
        elif c%4==1: n-=1
        elif c%4==2: m-=1
        else: b+=1
        if not(a<=m and b<=n):break
        else: c+=1
print(c)

설명

현재 진행 방향으로 이동하다가 경계를 벗어나면 진행 가능한 영역 경계를 줄이고 방향을 전환합니다.

더 이상 진행할 칸이 없을 때까지 반복하며 전환 횟수 c를 출력합니다.



댓글남기기