티스토리 뷰

알고리즘

<Programmers> 다음 큰 숫자

koyuchang 2020. 4. 28. 11:52

[내 코딩]

class Solution {
  public int solution(int n) {
      int answer = 0;
      int cnt = 0;
        int comCnt =0;

        String nBin = Integer.toBinaryString(n);
        for (int i = 0; i < nBin.length(); i++) {
            if (nBin.charAt(i) == '1') {
                cnt++;
            }
        }
        int temp = n+1;
        while (true) {
            String tmp = Integer.toBinaryString(temp);
            for(int i =0;i<tmp.length();i++){
                if(tmp.charAt(i)=='1'){
                    comCnt++;
                }
            }
            if(cnt==comCnt){
                answer = temp;
                break;
            }
            else{
                temp+=1;
                comCnt=0;
            }
        }
      return answer;
  }
}

 

 

[참조 후 개선된 코드]

class Solution {
  public int solution(int n) {
      int answer = 0;
      int cnt = Integer.bitCount(n);
        int compare = n+1;
        while(true){
            if(cnt == Integer.bitCount(compare)){
                answer = compare;
                break;
            }
            compare++;
        }
      return answer;
  }
}

'알고리즘' 카테고리의 다른 글

<Programmers> 피보나치 수  (0) 2020.04.29
<Programmers> 최솟값 만들기  (0) 2020.04.29
<Programmers> 최댓값과 최솟값  (0) 2020.04.29
<Programmers> 숫자의 표현  (0) 2020.04.29
<Programmers> 땅따먹기  (0) 2020.04.28
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함