6. Zigzag Conversion

2025-08-22
LeetCode 6번 풀이

이 글은 Obsidian에서 마이그레이션되었으며, 그 과정에서 AI의 도움을 받았습니다. 오류나 누락된 내용이 있다면 댓글로 알려주세요!

문제

Zigzag Conversion - LeetCode

풀이

아이디어

문제의 내용을 그대로 구현하는 시뮬레이션 방식

코드

function convert(s: string, numRows: number): string {
    if (numRows === 1 || s.length <= numRows) return s;

    const answer: string[][] = Array.from({length: numRows}, () => []);
    let ptr = 0;
    let dir: 'inc' | 'dec' = 'inc';

    for (let idx = 0; idx < s.length; idx++) {
        answer[ptr].push(s[idx]);
        if (ptr === 0) dir = 'inc';
        else if (ptr === numRows - 1) dir = 'dec';

        if (dir === 'inc') ptr++;
        else ptr--;
    }

    return answer.map((row) => row.join('')).join('');
};