728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
이진수로 바꿔서 0과 1의 개수를 카운트 해줬다.
Cal이라는 재귀함수를 만들어서 사용했음!
전체코드
import java.io.*;
import java.util.*;
class Solution {
static int cnt[] = new int[2];
static int next[];
public int solution(int n) {
int num = n;
Cal(num);
int answer = n+1;
while(true){
next = new int[2];
Cal2(answer);
if(cnt[1] == next[1]){
break;
}
answer++;
}
return answer;
}
static void Cal(int num){
if(num == 1 || num == 0){
cnt[num]++;
return;
}
if(num % 2 == 0){
num /= 2;
cnt[0]++;
Cal(num);
}else{
num /= 2;
cnt[1]++;
Cal(num);
}
}
static void Cal2(int n){
if(n == 1 || n == 0){
next[n]++;
return;
}
if(n % 2 == 0){
n /= 2;
next[0]++;
Cal2(n);
}else{
n /= 2;
next[1]++;
Cal2(n);
}
}
}
728x90
'코테 > Algorithm' 카테고리의 다른 글
[BOJ] 20310: 타노스 (JAVA) (0) | 2024.05.23 |
---|---|
[Programmers] 구명보트 (JAVA) (0) | 2024.05.22 |
[Programmers] 이모티콘 할인행사 (JAVA) (0) | 2024.05.18 |
[BOJ] 2485: 가로수 (JAVA) (0) | 2024.05.17 |
[BOJ] 2578: 빙고 (JAVA) (0) | 2024.05.14 |