Please enable JavaScript to view the comments powered by Disqus.Java BitCount 주어진 정수에서 true bit의 개수를 찾는 함수
Search

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
이런 간지나는 함수를 몰랐다니... 이제 알았으니 요긴하게 써먹어야겠다
함께 읽어보면 좋은 글