코딩 테스트/Level 2

삼각 달팽이

컴닥 2020. 10. 22. 00:10
반응형

삼각 달팽이
월간 코드 챌린지 시즌1 
413명 완료

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

 

코딩테스트 연습 - 삼각 달팽이

5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11]

programmers.co.kr

Python

def solution(n):
    triangle = [[0] * i for i in range(1, n + 1)]
    phase = [(1, 0), (0, 1), (-1, -1)]
    phase_index = x = y = 0
    count = 1
    for i in range(n, 0, -1):
        for j in range(i, 0, -1):
            if j == 1:
                phase_index = (phase_index + 1) % 3
            triangle[x][y] = count
            x, y = x + phase[phase_index][0], y + phase[phase_index][1]
            count += 1
    return [each for column in triangle for each in column]

깔끔하자~!

반응형