[프로그래머스 | Python] 삼각 달팽이

게으른 완벽주의자·2023년 1월 25일
0

프로그래머스

목록 보기
10/83
post-custom-banner

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

이게 Lv2가 맞나 싶은 문제였다 아님 내가 못 푸는건지..흑흑

그림을 보면 1,2,3,4,5/6,7,8,9/10,11,12/13,14/15 순서대로 움직이는 방향의 칸을 채우는 것을 알 수 있고 횟수는 총 n회, 한 번 채울 때마다 채우는 숫자의 갯수는 n부터 1씩 줄어 들어간다

n이 1000 이하이기 때문에 이중 for문으로 방향, 한 방향으로 채우는 숫자의 갯수를 조절해가며 움직인다
이 때 움직이는 방향은 아래, 오른쪽, 위 총 3가지 방향이 순서대로 간다

def solution(n):
    result = [[0]*n for _ in range(n)]
    answer = []
    x=-1    #맨 위 0,0 칸에 1을 넣기 위해서 -1부터 시작한다
    y=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
            result[x][y]=num
            num+=1
    
    for i in result:
        for j in i:
            if j:
                answer.append(j)
            
    return answer
profile
데이터를 공부하고 있습니다
post-custom-banner

0개의 댓글