본문 바로가기
그 외 지식

알고리즘 풀 때 중력 적용 시키기

by 위그든씨 2025. 10. 7.

알고리즘 풀다보면 종종 그래프에서 각 열마다 중력이 작용하여 아래로 떨어지는게 있는데 이때마다 재귀로 풀었음

이대신 아래 코드처럼 중력이 작용될 것들을 col에 넣고 앞에 빈 곳에는 * 을 넣으면 됨

// 5. 중력 적용: 블록을 아래로 내립니다.
for (let j = 0; j < n; j++) {
    // 각 열에 대해
    const newCol = [];
    for (let i = 0; i < m; i++) {
        // 위에서 아래로 읽으면서
        if (b[i][j] !== null) {
            newCol.push(b[i][j]); // 살아있는 블록만 newCol에 추가
        }
    }
    // newCol의 앞에 null을 추가하여 원래 열의 길이를 맞춥니다.
    const padding = Array(m - newCol.length).fill(null);
    const finalCol = padding.concat(newCol);

    // 재구성된 열을 다시 보드에 씁니다.
    for (let i = 0; i < m; i++) {
        b[i][j] = finalCol[i];
    }
}