Leetcode Java Number of 1 Bits

업데이트:

문제

Link

코드

public class Solution {

  // you need to treat n as an unsigned value
  public int hammingWeight(int n) {
    int result = 0;
    while (n != 0) {
      result += n & 1;
      n >>>= 1;
    }
    return result;
  }

}

결과

Link

설명

  1. 32bit code인 n에 포함된 1의 개수를 구하는 문제이다.

  2. 32bit code인 n에 포함된 1의 개수를 저장하기 위한 변수 result를 정의하고 0으로 초기화한다.

  3. n이 0이 되기 전까지 반복하여 1의 개수를 구한다.
    • result에 n과 1의 Bit 논리곱(AND)인 ‘&’의 결과를 더해준다.
    • n의 bit code 첫 값들을 우측으로 1칸씩 밀어주고, 맨 처음 값에 0을 채워준다.
  4. 반복이 완료되면 32bit code인 n에 포함된 1의 개수를 저장한 result를 주어진 문제의 결과로 반환한다.

소스

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

댓글남기기