[프로그래머스][Level2][Java] 다음 큰 숫자

2022. 3. 11. 22:57·프로그래머스/Level 2

문제

 

 

문제풀이

public int solution(int n) {                //다음 큰 숫자
    int count = 0;
    int match = 0;
    int num = n;
    String str = Integer.toBinaryString(n); //이진수로 변경
    for(char x : str.toCharArray()){        //1이 들어간 갯수를 count
        if(x == '1'){
            count++;
        }
    }
    Loop1:
    while(true){
        match = 0;
        num++;                              //n의 다음수부터 대입
        String str2 = Integer.toBinaryString(num);  //이진수로 변경
        for(char z : str2.toCharArray()){   //1이 들어간 횟수를 count
            if(z == '1'){
                match++;
            }
        }
        if(match == count){                 //match와 count의 갯수가 같으면 while문 break
            break Loop1;
        }
    }
    return num;                             //그때의 num값 반환
}

원래는 이렇게 복잡하게 풀었으나 다른 사람의 글을 보니 bitCount()라는 메서드를 써서 쉽게 풀었다....

bitCount()는 이진수로 바꾼뒤 거기에서 1의 갯수를 카운트하는 메서드이다.

그래서 다른 분의 풀이코드를 보면

public int nextBigNumber(int n)
    {
      int a = Integer.bitCount(n);
      int compare = n+1;

      while(true) {
        if(Integer.bitCount(compare)==a)
          break;
        compare++;
      }

      return compare;
    }

이런식으로 풀었다... 주석을 달지 않아도 이해가 쉬울 정도로 간단하다!

저작자표시 비영리 (새창열림)

'프로그래머스 > Level 2' 카테고리의 다른 글

[프로그래머스][Level2][Java] 프린터  (0) 2022.03.18
[프로그래머스][Level2][Java] 124 나라의 숫자  (0) 2022.03.12
[프로그래머스][Level2][Java] 땅따먹기  (0) 2022.03.10
[프로그래머스][Level2][Java] 숫자의 표현  (0) 2022.03.08
[프로그래머스][Level2][Java] 최솟값 만들기  (0) 2022.03.07
'프로그래머스/Level 2' 카테고리의 다른 글
  • [프로그래머스][Level2][Java] 프린터
  • [프로그래머스][Level2][Java] 124 나라의 숫자
  • [프로그래머스][Level2][Java] 땅따먹기
  • [프로그래머스][Level2][Java] 숫자의 표현
BvrPark
BvrPark
코드 퍼즐과 개발 일상
  • BvrPark
    비버의 개발 일지
    BvrPark
  • 전체
    오늘
    어제
    • 분류 전체보기 (121)
      • JAVA (7)
        • 메서드 외울 것 (2)
      • 프로그래머스 (56)
        • 총 풀이 코드(깃허브) (1)
        • Level 1 (22)
        • Level 2 (33)
      • 백준 알고리즘(단계 별) (16)
        • 총 풀이 코드(깃허브) (1)
        • 1. 입출력과 사칙연산 (2)
        • 2. if 문 (2)
        • 3. for문 (1)
        • 4. while문 (2)
        • 5. 1차원 배열 (3)
        • 6. 함수 (1)
        • 7. 문자열 (1)
        • 8. 기본수학 1 (3)
      • 백준 알고리즘(solved.ac) (9)
        • 총 풀이 코드(깃허브) (1)
        • class2 (8)
      • LeetCode 문제 풀이 (4)
        • 총 풀이 코드(깃허브) (1)
        • Easy (3)
      • 코드업 알고리즘 (7)
      • git과 github사용법 (4)
      • html, css, javaScript (2)
      • 프로젝트 (11)
        • 순수 Java 프로젝트 (2)
        • 쇼핑몰 프로젝트 (2)
        • 게시판 프로젝트 (5)
        • 근태관리 프로젝트 (2)
      • 커피타임 (2)
        • 2023년 (2)
        • 2024년 (0)
  • 블로그 메뉴

    • 링크

      • 포트폴리오
      • 깃허브
    • 공지사항

    • 인기 글

    • 태그

    • 최근 댓글

    • 최근 글

    • Designed By정상우
    BvrPark
    [프로그래머스][Level2][Java] 다음 큰 숫자
    상단으로

    티스토리툴바