[프로그래머스] 삼각 달팽이

단간단간·2024년 4월 2일
0

알고리즘 문제

목록 보기
40/106

문제 링크:

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

회고:

  1. 삼각형 배열 초기화
  2. 방향 전환 로직 필요
  3. 삼각형 배열에 값 채우기

python

def solution(n: int) -> list:
	# 삼각형 배열 초기화
    triangle_graph = [[0] * (i + 1) for i in range(n)]
	
    dxs = (1, 0, -1)
    dys = (0, 1, -1)
    
    x, y = -1, 0
    count = 0
    for idx, loop in enumerate(range(n, 0, -1)):
        # 방향 전환
        dx = dxs[idx % 3]
        dy = dys[idx % 3]
        
        for _ in range(loop):
            x += dx
            y += dy
            count += 1
			
            # 값 채우기
            triangle_graph[x][y] = count

    result = []
    for array in triangle_graph:
        result += array

    return result


if __name__ == "__main__":
    result = solution(4)

    print(result)
    print(result == [1,2,9,3,10,8,4,5,6,7])
[1, 2, 9, 3, 10, 8, 4, 5, 6, 7]
True
profile
simple is best

0개의 댓글