https://school.programmers.co.kr/learn/courses/30/lessons/68645
문제의 규칙은 아래 이미지와 같다:
채우는 방향이 3가지로 나뉘어져 있으며 n만큼 실행하였을때 삼각형이 모두 채워진다. (규칙을 찾을때는 n이 다른 경우에도 잘맞는지를 꼭 더블체크하자!)
def solution(n):
answer = []
_list = [[0]*i for i in range(1, n+1)]
y,x = -1,0
cnt = 1
for i in range(n):
for _ in range(i,n):
# for j in range(n):
if i % 3 == 0: #아래로 한칸씩 채우기
y += 1
elif i% 3 == 1: #오른쪽으로 한칸씩 채우기
x += 1
elif i% 3 == 2: #위대각선으로 한칸씩 채우기
x -= 1
y -= 1
_list[y][x] = cnt
cnt+=1
for i in _list:
for j in i:
answer.append(j)
return answer