문제: https://school.programmers.co.kr/learn/courses/30/lessons/12980
1. 코드
public class Solution {
public int solution(int n) {
int ans = 0;
for(char c : Integer.toBinaryString(n).toCharArray())
if(c == '1')
ans++;
return ans;
}
}
2. 설명
10진수 | 2진수 | 정답 |
5 | 101 | 2 |
6 | 110 | 2 |
5000 |
1001110001000
|
5 |
위 표를 보면 10진수를 2진수로 변환한 뒤 1의 수와 동일한 것을 확인할 수 있습니다.
따라서 Integer.toBinaryString() 메서드를 통해서 2진수로 변환한 뒤 1의 수를 측정하면 문제는 쉽게 해결됩니다.
3. 정리
- 순차적으로 문제를 해결하는 것도 좋지만 간단한 방법은 존재한다.
출처: 프로그래머스 코딩 테스트 연습,
https://school.programmers.co.kr/learn/challenges
'컴퓨터 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 138476번: 귤 고르기 [Java] (0) | 2023.08.25 |
---|---|
프로그래머스 - 12914번: 멀리 뛰기 [Java] (0) | 2023.08.24 |
프로그래머스 - 12985번: 예상 대진표 [Java] (0) | 2023.08.22 |
프로그래머스 - 42885번: 구명보트 [Java] (0) | 2023.08.21 |
프로그래머스 - 92334번: 신고 결과 받기 [Java] (0) | 2023.08.20 |