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)
- 시간 초과 부분 해결하니 맞았다.