문제 설명
자연수 n이 주어졌을 때, n보다 크고 2진수로 변환했을때 1의 갯수가 같은 자연수를 return
https://school.programmers.co.kr/learn/courses/30/lessons/12911
문제 풀이법
자연수 n보다 1 큰 숫자부터 시작하여 2진수로 변환했을 때, 1의 갯수가 같은 것을 찾는다
while문을 돌면서 숫자를 2로 나누며, 나머지가 1인 갯수를 세면 2진수로 변환했을 때의 1의 갯수를 구할 수 있다
소스 코드
#include <string>
#include <vector>
using namespace std;
int count_one(int n) {
int cnt = 0;
while (n >= 1) {
if (n % 2 == 1)
cnt++;
n = n / 2;
}
return cnt;
}
int solution(int n) {
int answer = 0;
int n_cnt = count_one(n);
for (int i = n + 1; i < 1000001; i++) {
if (n_cnt == count_one(i)) {
answer = i;
break;
}
}
return answer;
}#include <string>
#include <vector>
using namespace std;
int count_one(int n) {
int cnt = 0;
while (n >= 1) {
if (n % 2 == 1)
cnt++;
n = n / 2;
}
return cnt;
}
int solution(int n) {
int answer = 0;
int n_cnt = count_one(n);
for (int i = n + 1; i < 1000001; i++) {
if (n_cnt == count_one(i)) {
answer = i;
break;
}
}
return answer;
}
'Algorithm Study' 카테고리의 다른 글
[프로그래머스] 2단계 - 짝지어 제거하기 (0) | 2023.12.28 |
---|---|
[프로그래머스] 2단계 - 피보나치 수 (0) | 2023.12.28 |
[프로그래머스] 2단계 - 숫자의 표현 (0) | 2023.12.27 |
[프로그래머스] 2단계 - 올바른 괄호 (0) | 2023.12.27 |
[프로그래머스] 2단계 - 최솟값 만들기 (0) | 2023.12.27 |