산 모양 타일링
Lv. 3
Solution
export function countMoutainTile(n: number, tops: number[]): number {
const MOD = 10007;
const sum = (...nums: number[]): number => {
return nums.reduce((acc, curr) => (acc + curr) % MOD, 0);
};
let [none, left, center, right] = [1, 1, tops[0], 1];
for (let i = 1; i < n; i++) {
const total = sum(none, left, center, right);
[none, left, center, right] = [
total,
sum(none, left, center),
tops[i] === 0 ? 0 : total,
total,
];
}
return sum(none, left, center, right);
}