(Java) 프로그래머스 다음 큰 숫자

2021. 12. 15. 13:27·코딩 테스트

문제에 나온 조건대로 작성했다.

n을 2진수로 변환하고 1의 개수를 세어 ncnt에 넣었다.

n을 1씩 증가시키며 2진수로 변환했을 때 1의 개수가 같으면 반환하게 했다.


다른 분 코드

Integer.bitCount 메서드를 처음 봤는데 이걸 알았다면 더 간단하게 풀었을 것 같다.

import java.lang.Integer;

class TryHelloWorld
{
    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;
    }

    public static void main(String[] args)
    {
        TryHelloWorld test = new TryHelloWorld();
        int n = 78;
        System.out.println(test.nextBigNumber(n));
    }
}

 

최종 코드

class Solution {
    public int solution(int n) {
        int answer = 0;
        int ncnt = 0;
		int bcnt = 0;
		
        // n을 2진수로 변환하고 1개수 세기
		String ns = Integer.toBinaryString(n);
		
		for(int i=0; i<ns.length(); i++) {
			if(ns.charAt(i) == '1') {
				ncnt++;
			}
		}
		
        // n을 1씩 늘리며 1개수 숫자 세기
		int temp = n+1;
		while(ncnt != bcnt) {
			String temps = Integer.toBinaryString(temp);
			for(int i=0; i<temps.length(); i++) {
				if(temps.charAt(i) == '1') {
					bcnt++;
				}
			}
			if(ncnt != bcnt) {
				bcnt=0;
				temp++;
			}
		}
        answer = temp;
        return answer;
    }
}

'코딩 테스트' 카테고리의 다른 글

(Java) 프로그래머스 땅따먹기  (0) 2021.12.15
(Java) 프로그래머스 올바른 괄호  (0) 2021.12.15
(Java) 프로그래머스 최댓값과 최솟값 (Lv 2)  (0) 2021.12.15
(Java) 프로그래머스 최솟값 만들기  (0) 2021.12.04
(Java) 프로그래머스 키패드 누르기  (0) 2021.12.03
'코딩 테스트' 카테고리의 다른 글
  • (Java) 프로그래머스 땅따먹기
  • (Java) 프로그래머스 올바른 괄호
  • (Java) 프로그래머스 최댓값과 최솟값 (Lv 2)
  • (Java) 프로그래머스 최솟값 만들기
로승리
로승리
  • 로승리
    Roy's Blog
    로승리
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Issuefy
      • Language
      • Spring
      • Database
      • Network
      • Kubernetes
      • AWS
      • 코드스쿼드
      • 코딩 테스트
      • 생각정리
      • 국비지원
      • 회고
      • 컨퍼런스, 세미나
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
로승리
(Java) 프로그래머스 다음 큰 숫자
상단으로

티스토리툴바