삼각달팽이 [python]

Jaymee·2021년 11월 12일
0

한번에 답을 구할 수 있는 방법이 있을까 하고 싶었지만, 결국은 단순하게 생각해야 한다.
아래로 내려갈 경우, 오른쪽으로 가는 경우, 위로 올라가는 경우 이렇게 3가지밖에 없으며, 차례를 나눴을 경우의 나머지 값을 보고 결정한다.

문제 설명
정수 n이 매개변수로 주어집니다. 다음 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한 후, 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return 하도록 solution 함수를 완성해주세요.

제한사항
n은 1 이상 1,000 이하입니다.
입출력 예

def solution(n):
    answer = [[0]*i for i in range(1,n+1)]
    
    x,y = -1,0 ## 처음에는 무조건 내려가기 때문에
    num = 0
    for i in range(0, n):
        for j in range(i,n):
            go = i % 3
            if go == 0: ## 아래
                x += 1
            elif go == 1: ## 오른쪽
                y += 1          
            else: ## 위
                x -= 1
                y -= 1
            num += 1
            answer[x][y] = num
    
    return sum(answer, [])
profile
backend developer

0개의 댓글