Search
Duplicate

Java BitCount 주어진 정수에서 true bit의 개수를 찾는 함수

태그
Java
Algorithm
공개여부
작성일자
2021/01/29
leetcode 에서 문제를 풀다가 Integer.bitCount 라는 함수를 알게되었다. 이걸 진작에 알았더라면 여러 알고리즘 문제를 겁나 편하게 풀었을텐데 이진수에서 1의 개수를 세어주는 함수이다.
이러한 시계에서 불이 n개 켜졌을때 반환할 수 있는 시간들을 String List 로 반환하라는 문제이다.
근데 저 시계 좀 간지나는거 같다
Hour 는 0 ~ 11 까지 존재한다 (12까지 존재하는줄 알고 짯다가 테스트 케이스에서 걸림)
Minutes 는 0 ~ 59 까지 존재한다
각 정수를 h, m 을 binary 로 변경했을때 1의 개수의 합이 num 이 되는 모든 시간을 반환한다
class Solution { public List<String> readBinaryWatch(int num) { List<String> result = new ArrayList<>(); for (int h = 0; h <12; h ++) { for (int m = 0; m < 60; ++ m) { int count = Integer.bitCount(h) + Integer.bitCount(m); if (count == num) result.add(String.format("%d:%02d", h, m)); } } return result; } }
Java

Integer.bitCount

정수를 매개변수로 넣었을때 그 정수의 1 의 개수를 반환한다
1111(2)1111_{(2)} → 4
1101(2)1101_{(2)} → 3
이런 간지나는 함수를 몰랐다니... 이제 알았으니 요긴하게 써먹어야겠다
TOP