Problem
Problem URL : 다음 큰 숫자
[1] Wrong Code (18. 07. 25)
int tenConvertTwo(int num){
    int result = 0;
    for(int i=1; num>0; i*=10)
    {
        int binary = num % 2;
        result += binary*i;
        num /= 2;
    }
    return result;
}
int solution(int n) {
    int answer = 0;
    int one_cnt = 0;
    string itos = to_string(tenConvertTwo(n));
    for(int i=0; i< itos.length(); i++){
        if( itos[i] == '1' )
            one_cnt ++;
    }
    while (++n) {
        itos = to_string(tenConvertTwo(n));
        int tmp_one_cnt = 0;
        for(int i=0; i< itos.length(); i++){
            if( itos[i] == '1' )
                tmp_one_cnt ++;
        }
        if( one_cnt == tmp_one_cnt){
            answer = n;
            break;
        }
    }
    return answer;
}
[1] Wrong Code (18. 07. 25)
- 
    
TC 부분적으로 맞았다.
 - 
    
문제는 시간초과였다.
 
[1] Answer Code (18. 07. 25)
int tenConvertTwo(int num){
    int result = 0;
    for(int i=1; num>0; i*=10){
        if( num % 2 == 1)
            result++;
        num /= 2;
    }
    return result;
}
int solution(int n) {
    int answer = 0;
    int one_cnt = tenConvertTwo(n);
    
    while (++n) {
        int tmp_one_cnt = tenConvertTwo(n);
        if( one_cnt == tmp_one_cnt){
            answer = n;
            break;
        }
    }
    return answer;
}
[1] Answer Code (18. 07. 25)
- 시간 초과 부분 해결하니 맞았다.