[programmers] Java Lv. 2 - 다음 큰 숫자

2022. 10. 27. 16:57·Algorithm Solving/Java

문제

자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다.

  • 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다.
  • 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다.
  • 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다.

예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다.

자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요.

 

제한 사항

  • n은 1,000,000 이하의 자연수 입니다.

 

입출력 예

입출력 예 설명

입출력 예#1
문제 예시와 같습니다.
입출력 예#2
15(1111)의 다음 큰 숫자는 23(10111)입니다.


풀이

class Solution {
    public int solution(int n) {
        //정답으로 리턴할 값
        int answer = n + 1;
        String binaryA = Integer.toBinaryString(answer);

        //주어진 자연수를 이진수로 변환하여 1의 개수를 저장한 값
        String binaryN = Integer.toBinaryString(n);
        int countOne = binaryN.length() - binaryN.replace("1", "").length();

        //answer을 1씩 증가시키면서 answer값을 이진수로 바꿨을때 1의 개수가 countOne과 같다면 반복문 종료
        while(true){
            if(binaryA.length() - binaryA.replace("1", "").length() == countOne)
                break;
            answer++;
            binaryA = Integer.toBinaryString(answer);
        }
        return answer;
    }
}
저작자표시 비영리 변경금지 (새창열림)

'Algorithm Solving > Java' 카테고리의 다른 글

[BOJ] 백준 2606번 : 바이러스 - Java  (0) 2024.09.09
[BOJ] 백준 1962번 : 그림 - Java  (0) 2024.09.09
[programmers] Java Lv. 2 - 피보나치 수  (0) 2022.10.19
[programmers] Java Lv. 2 - 숫자의 표현  (0) 2022.10.19
[programmers] Java Lv. 2 - 올바른 괄호  (1) 2022.10.04
'Algorithm Solving/Java' 카테고리의 다른 글
  • [BOJ] 백준 2606번 : 바이러스 - Java
  • [BOJ] 백준 1962번 : 그림 - Java
  • [programmers] Java Lv. 2 - 피보나치 수
  • [programmers] Java Lv. 2 - 숫자의 표현
기만나🐸
기만나🐸
공부한 내용을 기록합시다 🔥🔥🔥
  • 기만나🐸
    기만나의 공부 기록 🤓
    기만나🐸
  • 전체
    오늘
    어제
    • ALL (147)
      • TIL (Today I Learned) (56)
      • Dev Projects (15)
      • Algorithm Solving (67)
        • Java (52)
        • SQL (15)
      • Certifications (8)
        • 정보처리기사 실기 (8)
  • 인기 글

  • 태그

    bootstrap
    그리디
    Firebase
    join
    백준
    DFS
    Google Fonts
    프로그래머스
    완전탐색
    jQuery
    HTML
    BFS
    sql
    자료구조
    jpa
    programmers
    BOJ
    mysql
    GROUP BY
    Subquery
    백트래킹
    javascript
    다이나믹프로그래밍
    jwt
    CSS
    시뮬레이션
    greedy
    java
    websocket
    dp
  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
기만나🐸
[programmers] Java Lv. 2 - 다음 큰 숫자
상단으로

티스토리툴바