[프로그래머스/파이썬] Level 2 삼각 달팽이

bye9·2021년 3월 11일
0

알고리즘(코테)

목록 보기
92/130

https://programmers.co.kr/learn/courses/30/lessons/68645


문제풀이

삼각형방식으로 값을 채워갈 때 경우의 수가 아래로 가는 경우, 우측으로 가는 경우, 위로 가는 경우
총 3가지로 나누어진다.

아래로 가는 경우는 3으로 나눈 나머지가 0인 경우이다.
이때 triangle에서 x좌표 값이 +1씩 n까지만 증가하는 것을 볼 수 있다.

위로 가는 경우는 3으로 나눈 나머지가 2인 경우로, x,y좌표가 -1씩 감소하는 것을 볼 수 있다.

각 경우에 해당하는 좌표에 값을 넣어준다.

소스코드

def solution(n):
    triangle=[]
    for i in range(1,n+1):
        triangle.append([0]*i)
        
    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
            elif i%3==2:
                x-=1
                y-=1
            triangle[x][y]=num
            num+=1
    
    result=[]
    for i in triangle:
        for j in i:
            result.append(j)
            
    return (result)

0개의 댓글