def solution(n):
answer = []
triangle = [[0 for _ in range(i)] for i in range(1, n+1)]
num = 1
x, y = -1,0
for i in range(n):
for _ in range(i, n):
if i % 3 == 0:
x += 1
elif i % 3 == 1:
y += 1
else:
x -= 1
y -= 1
triangle[x][y] = num
num += 1
for i in triangle:
answer += i
return answer
🗝️keypoint
도형 문제를 보다 편리하게 이해하고 풀이하는 방법은, 좌표평면으로 치환하는 것이다.
'층을 내려가고, 오른쪽 끝까지 이동하고, 층을 올라가는' 과정이 순서대로 총 n번 일어난다. ( = 3으로 나눈 나머지)
0,3,6... 번째 -> 내려가기|1,4,7... -> 오른쪽 끝까지 이동하기| 2,5,8... -> 올라가기
반복되는 과정에서 값을 변경할 때에는, list를 활용하는것이 편리하다. (문자열은 특정 index 값의 변경이 불가능하다)