💬 문제
https://school.programmers.co.kr/learn/courses/30/lessons/68645
💬 Idea
삼각형을 채울 때 n에서부터 ↙️ ➡️ ↖️ 의 규칙을 따르고, 채워지는 기준 개수가 -1씩 줄어든다는 것을 발견하여 해당 원리를 이용해 문제를 풀이했다.







💬 풀이
import Foundation
func solution(_ n:Int)->[Int]{varn= n
vartriangleIdx=1vartriangleFilledCnt=0 // 삼각형에 채워지는 숫자 개수
varnumber=0 // 계속 오르는 숫자
vary=-1 // y 좌표
varansArr:[[Int]]=[]foriin1...n {
ansArr.append(Array(repeating:0, count: i))}while n >0{
number +=1
triangleFilledCnt +=1switch triangleIdx %3{case0: // 하강하면서 채워짐
y -=1ansArr[y][ansArr[y].lastIndex(of:0)??0]= number
case1: // 상승하면서 채워짐
y +=1ansArr[y][ansArr[y].firstIndex(of:0)??0]= number
default: // 가장 밑단만 채워짐
ansArr[y][ansArr[y].firstIndex(of:0)??0]= number
}
// 기점: 4 / 3 / 2 / 1
if triangleFilledCnt == n {
n -=1 // 기준 숫자 - 1
triangleIdx +=1 // 삼각형 index + 1
triangleFilledCnt =0}}return ansArr.flatMap({ $0 })}
💬 문제https://school.programmers.co.kr/learn/courses/30/lessons/68645
💬 Idea삼각형을 채울 때 n에서부터↙️ ➡️ ↖️ 의 규칙을 따르고, 채워지는 기준 개수가 -1씩 줄어든다는 것을 발견하여 해당 원리를 이용해 문제를 풀이했다.
💬 풀이