[프로그래머스 Lv2] 삼각 달팽이(python)

이진규·2022년 3월 4일
2

프로그래머스(PYTHON)

목록 보기
36/64

문제

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

나의 코드 (답안참조)

"""
1. 아이디어

2. 시간복잡도

"""

def solution(n):

    triangle = [ [0] * n for _ in range(n) ]
    answer = []
    x, y = -1, 0
    num = 1

    for i in range(n):
        for j in range(i, n):
			
            # Down
            if i % 3 == 0:
                x += 1
			
            # Right
            elif i % 3 == 1:
                y += 1
			
            # Up
            elif i % 3 == 2:
                x -= 1
                y -= 1

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

    for i in range(n):
        for j in range(i+1):
            answer.append(triangle[i][j])

    return answer
    

설명

이 문제의 핵심은 이중 반복문을 통해 Down, Right, Up하는 i % 3 == ? 구문을 작성할 수 있는지 인 것 같습니다.

만약 n = 4 일때, 첫번째 반복할때는 4번 Down, 두번째 반복할때는 3번 Right, 세번째 반복할때는 2번 Up, 4번째 반복할때는 1번 Down 입니다.
이 과정에서 x, y 좌표를 계속 갱신하여 숫자(num)가 채워지도록 설정해야 합니다.

자세한 설명 보다는 직접 그림을 그려보면 쉽게 이해가 될 수 있으니 직접 그려보는게 좋습니다.

참고자료

X

profile
항상 궁금해하고 공부하고 기록하자.

0개의 댓글