[Level2] 삼각 달팽이

Quesuemon·2022년 8월 23일
0

코딩테스트 준비

목록 보기
106/111

🛠 문제

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


👩🏻‍💻 해결 방법

삼각형 구조를 만들기 위한 배열을 선언한다
n번의 회차만큼 배열에 저장되기 때문에 반복문을 n번 실행시킨다
하나의 둘레는 3회가 필요한데,
회차 % 3 == 0이면 아래, 1이면 오른쪽, 2면 위쪽으로 이동한다
2차원 배열에 저장된 데이터는 sum(배열, [])을 통해 1차원으로 변경하여 합산해준다

소스 코드

def solution(n):
    answer = []
    result = [[0] * n for _ in range(n)]
    x, y = -1, 0	# 처음 시작은 아래로 내려가기 때문에 x = -1
    num = 1

    for i in range(0, 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

            result[x][y] = num
            num += 1

    for i in result:
        for j in i:
            if j != 0: answer.append(j)
    return answer

  

0개의 댓글

관련 채용 정보