[LeetCode] 89. Gray Code

Chobby·2024년 12월 15일
2

LeetCode

목록 보기
123/194

😎풀이

grayCode를 구하는 방법을 알면 풀이가 간단한 문제이다.

각 step(n)에서 이전 시퀀스에 2^(n-1)을 더해 추가하는 것이 현재 시퀀스가 되는 구조이다.

function grayCode(n: number): number[] {
    if(n === 1) return [0, 1]

    // 이전 grayCode 가져오기
    const prevSequence = grayCode(n - 1)

    const result = [...prevSequence]

    for(let i = prevSequence.length - 1; i >= 0 ; i--) {
        // 기존 시퀀스의 역순에 2^(n-1)을 더해 추가
        result.push(prevSequence[i] | (1 << n - 1))
    }

    return result
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글