삼각 달팽이

bird.j·2021년 10월 12일
0

프로그래머스

목록 보기
33/53

프로그래머스

def solution(n):
    result = []
    tri = [[0 for j in range(1, i+1)] for i in range(1, n+1)]
    
    x, y = -1, 0
    num = 1
    for i in range(n): #방향
        for j in range(n-i): #좌표
            if i%3 == 0:
                x += 1 # 아래
            elif i%3 == 1:
                y += 1 # 오른
            elif i%3 == 2:
                x -= 1 #위
                y -= 1
                
            tri[x][y] = num
            num += 1
    
    return sum(tri, [])
  • [[0], [0,0], [0,0,0] ...] 처럼 각 원소의 수가 점차 증가하는 2차원 배열 만드는 방법
    [[0 for j in range(1, i+1)] for i in range(1, n+1)]

  • 방향은 아래 -> 오른쪽 -> 위 이렇게 세가지. i를 3으로 나눈 나머지에 따라서 방향 설정

  • 진행될 때마다 값을 채워야하는 수가 i개씩 줄어든다.
    행은 x, 열은 y로 하여 방향에 따라 이동 후 배열에 값 채워줌

  • 2차원 배열을 1차원 배열로 만드는 방법 : sum(2차원 리스트, [])

0개의 댓글