알고리즘

[LeetCode] 191. Number of 1 Bits

2022. 5. 25. 00:46
목차
  1. 🎨 문제
  2. 📘 풀이
  3. 📗 코드
  4. 📒 예시

leet코드 문제를 풀다가 신기한 풀이가 있어서 공유합니다.

🎨 문제

이진수 숫자가 주어지면 1의  개수를 세는 문제이다.

 

Number of 1 Bits - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

📘 풀이

풀이 방식은 다양하지만 새롭게 알게된 풀이가 있었다. 바로 비트 연산을 활용하는 것이다. 

 

💡 입력값 n에 n - 1한 값을 AND 연산하면 1이 하나 빠진다.

 

위의 방법을 이용하면 n이 0이 될 때까지 해당 연산을 반복하고 반복 횟수를 리턴하면 1의 개수를 알 수 있다.

📗 코드

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

📒 예시

입력(n) n - 1 n & n - 1
1000 0111 0000
입력(n) n - 1 n & n - 1
1010 1001 1000
1000 0111 0000

 

 

 

'알고리즘' 카테고리의 다른 글

[LeetCode] 162. Find Peak Element  (0) 2022.07.28
[LeetCode] 153. Find Minimum in Rotated Sorted Array  (0) 2022.07.26
[LeetCode] 33. Search in Rotated Sorted Array  (0) 2022.07.25
Dijkstra - 다익스트라  (0) 2022.05.30
Union Find - 유니온 파인드  (0) 2022.05.21
  1. 🎨 문제
  2. 📘 풀이
  3. 📗 코드
  4. 📒 예시
'알고리즘' 카테고리의 다른 글
  • [LeetCode] 153. Find Minimum in Rotated Sorted Array
  • [LeetCode] 33. Search in Rotated Sorted Array
  • Dijkstra - 다익스트라
  • Union Find - 유니온 파인드
acisliver
acisliver
acisliver
와당탕탕 개발놀이터
acisliver
전체
오늘
어제
  • 분류 전체보기 (65)
    • 회고 (11)
    • Spring (3)
    • 알고리즘 (21)
    • Java (2)
    • DevOps (2)
    • Shell (2)
    • Nginx (1)
    • Database (22)
    • Project (1)

블로그 메뉴

  • 태그
  • 방명록
  • GitHub
  • Notion

공지사항

인기 글

태그

  • 코딩테스트
  • 이진탐색
  • dp
  • 카카오
  • 풀 테이블 스캔
  • Bash
  • 구름톤 트레이닝
  • 프리코스
  • 오픈소스 컨트리뷰톤
  • 풀 인덱스 스캔
  • 알고리즘
  • Java
  • Spring
  • Leetcode
  • FOSSLight
  • 인덱스
  • 오픈소스
  • 프로그래머스
  • 자바
  • 백준
  • 풀스택
  • 우아한테크코스
  • mysql
  • FuntionalInterface
  • innodb
  • spring boot
  • binarySearch
  • DevOps
  • 이분탐색
  • Shell

최근 댓글

최근 글

hELLO · Designed By 정상우.
acisliver
[LeetCode] 191. Number of 1 Bits
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.