Gidhub BE Developer

Programmers - 다음 큰 숫자

2018-07-25
goodGid

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)

  • 시간 초과 부분 해결하니 맞았다.

Comments

Content