[Leetcode] 717. 1-bit and 2-bit Characters

RexiaN·2025년 11월 18일

특별한 문자들이 있다. 한자리인 0 과 두자리인 10, 11 이다. 그리고 맨 뒤의 원소가 0 인, 0 과 1 로 구성된 배열이 주어진다. 이 배열을 구성하는 마지막 문자가 한자리 문자인지 판별하는 문제.

두자리를 차지하는 문자는 무조건 1로 시작한다는 점을 보면 쉽다. 앞에서부터 bits[i] 를 확인해서 0 이면 한 칸 전진, 1 이면 두 칸 전진하면 된다. 이후 인덱스로 사용한 i 가 배열의 마지막 인덱스와 같은지만 확인하면 되는 문제. 두칸씩 점프할 일이 많을수록 배열을 덜 돌아서 좋다.

function isOneBitCharacter(bits: number[]): boolean {
    const lastIndex = bits.length - 1;
    
    let i = 0;

    while(i < lastIndex) {
        if (bits[i] === 0) {
            i += 1
        } else {
            i += 2
        }
    }

    return i === lastIndex;
};

profile
Don't forget Rule No.1

0개의 댓글