코테 준비/구현

프로그래머스_삼각달팽이

imsmile2000 2023. 12. 9. 18:05

달팽이 알고리즘!

i: 이동 방향 바꾼 횟수

 

i%3==0  -> 밑으로 이동 (x+=1)

i%3==1  -> 오른쪽으로 이동 (y+=1)

i%3==2 -> 위로 이동(x-=1, y-=1)

 

def solution(n):
    answer = [[0]*i for i in range(1,n+1)]
    x,y=-1,0
    num=1
    for i in range(n):
        for j in range(i,n):
            if i%3==0: # 아래
                x+=1
            elif i%3==1: # 오른쪽
                y+=1
            else:
                x-=1
                y-=1
            answer[x][y]=num
            num+=1
    return [j for i in answer for j in i]