목차

삼각 달팽이

ps
링크programmers.co.kr/…
출처프로그래머스
문제 번호68645
문제명삼각 달팽이
레벨Level 2
분류

구현

시간복잡도O(n^2)
인풋사이즈n<=1000
사용한 언어Python
해결날짜2020/12/17

풀이

코드

"""Solution code for "Programmers 68645. 삼각 달팽이".

- Problem link: https://programmers.co.kr/learn/courses/30/lessons/68645
- Solution link: http://www.teferi.net/ps/problems/programmers/68645
"""


def solution(n):
    step_d, step_r, step_u = n, 1, -(n + 1)
    next_step = {step_d: step_r, step_r: step_u, step_u: step_d}
    answer = [0] * (n * n)
    step = step_d
    index = 0
    answer[index] = 1
    for i in range(2, n * (n + 1) // 2 + 1):
        if index + step >= len(answer) or answer[index + step]:
            step = next_step[step]
        index += step
        answer[index] = i
    return [x for x in answer if x]