Leetcode Java 1-bit and 2-bit Characters

업데이트:

문제

Link

코드

class Solution {

  public boolean isOneBitCharacter(int[] bits) {
    int bit = 0;
    for (int idx = bits.length - 2; idx >= 0 && bits[idx] != 0; idx--) {
      bit++;
    }
    return bit % 2 == 0;
  }

}

결과

Link

설명

  1. 0으로 끝나는 bits 배열의 값들은 0, 1, 10, 11로 값이 들어가 있으며, 이 값들을 이용하여 마지막 문자가 1비트 문자인지 검증하는 문제이다.

  2. bit는 문자의 비트를 계산하기 위한 변수로, 0으로 초기화한다.

  3. 마지막 값은 0이므로 무시하고 bits의 길이보다 2 작은 길이부터 idx가 0 이상이고 bits의 idx번째 값이 0이 아닐 때 까지 bit를 증가시킨다.

  4. 1비트 문자가 되기 위해선 110, 11110과 같이 bit의 1의 개수가 짝수가 되어야 하므로 bit가 짝수인지 여부를 주어진 문제의 결과로 반환한다.

소스

Sample Code는 여기에서 확인 가능합니다.

댓글남기기