알고리즘/programmers
프로그래머스 레벨2 다음 큰 숫자 (JAVA)
dev-jo
2021. 7. 20. 00:36
이번에 푼 쉬운 레벨2 문제..!
https://programmers.co.kr/learn/courses/30/lessons/12911
코딩테스트 연습 - 다음 큰 숫자
자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니
programmers.co.kr
모든 코드는 GitHub 에 올려놓았다.
어 음.. 쉽다.. 설명할게 따로 없다..
그냥 생각 없이 푸니까 10분 정도 걸린 거 같다.
코드를 보자..!
class Solution {
public int solution(int n) {
int start = n + 1;
int count = 0;
while (n >= 1) {
if(n % 2 == 1) {
count++;
}
n = n / 2;
}
while (true) {
int target = start;
int targetCount = 0;
while (target >= 1) {
if(target % 2 == 1) {
targetCount++;
}
target = target / 2;
}
if(count == targetCount) {
break;
}
start++;
}
return start;
}
}
내장 함수 2진법 변환을 쓸까도 했지만
그냥 2진법으로 내가 바꿔주고 1을 카운트 해준후
n + 1부터 반복문을 돌려주었다..
끝.
이문제는 진짜 쓸게 없다..