출처 : 프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/68645
더보기
먼저, 생각해야 할 부분
1. 규칙 찾기
각 행을 내려가면서 행 내의 모든 숫자를 배열에 추가하면 좋겠지만, 그럴 수 있는 규칙은 보이지 않는다.즉, 일일이 구현해야하는데, 달팽이 모양을 따라가면서 쉽게 구현하기 위한 규칙을 찾아보자.
풀이
def solution(n):
triangle = [[0 for _ in range(i + 1)] for i in range(n)]
direction = [(1, 0), (0, 1), (-1, -1)]
d_idx = 0
cr, cc = -1, 0
number = 1
while n > 0:
for i in range(n):
dr, dc = direction[d_idx]
cr += dr
cc += dc
triangle[cr][cc] = number
number += 1
n -= 1
d_idx = (d_idx + 1) % 3
answer = []
for line in triangle:
answer += line
return answer
Github
'알고리즘 > Python' 카테고리의 다른 글
백준 16236 - 아기 상어 (0) | 2023.09.22 |
---|---|
[pypy] 백준 16235 - 나무 재테크 (0) | 2023.07.10 |
[python] 프로그래머스 - 택배 배달과 수거하기 (0) | 2023.04.21 |
[python] 백준 1062 - 가르침 (0) | 2023.04.16 |
[python] 프로그래머스 - 베스트앨범 (0) | 2023.04.16 |