- 아 진짜.. codility 코드저장이 안되서 두번풀었다..
- 단순구현문제라 설명은 생략한다
- 근데 재귀가 코드가독성이 똥인듯
class Solution {
public static void main(String[] args) {
Solution s = new Solution();
System.out.println( s.solution(9) + "is equal 2?");
}
static boolean is_started = false;
static char[] arr;
static int maxi = 0;
public int solution(int N) {
String s = Integer.toBinaryString(N);
arr = s.toCharArray();
run(arr.length,0,0);
return maxi;
}
void run(int end, int cur, int len) {
if(cur>=end) {
return;
}
else {
if(arr[cur] == '0') {
if(is_started) {
run(end,cur+1,len+1);
}
if(!is_started) {
run(end,cur+1,0);
}
}
if(arr[cur] == '1') {
is_started = true;
maxi = Math.max(maxi,len);
run(end,cur+1,0);
}
}
}
}