728x90
프로그래머스 | Lv.2 다음 큰 숫자
문제 풀이
- 입력된 n에 대한 2진수 속 1의 개수 카운팅시키기
- while문 돌면서 n++ 시키며 n++의 2진수 속 1의 개수 카운팅 값이 태초의 n에 대한 카운팅 값과 일치하는 경우에 한해서만 answer = n 세팅한 뒤 break 걸어 while 탈출
코드
class Solution {
public int solution(int n) {
int answer = 0;
//1) 일단 n의 2진수 속 1의 갯수 카운팅
String tmp = Integer.toBinaryString(n);
int tmpCnt = 0;
for(char x : tmp.toCharArray()){
if(x == '1') tmpCnt++;
}
boolean chk = false;
while(chk == false){
n++;
String A = Integer.toBinaryString(n);
int cnt = 0;
for(char x : A.toCharArray()){
if(x == '1') cnt++;
}
if(cnt == tmpCnt) {
answer = n;
chk = true;
break;
}
}
return answer;
}
}
728x90
'코딩 테스트 [준비] > [문풀] 프로그래머스_문풀_조지기' 카테고리의 다른 글
프로그래머스 | LV.2 타겟 넘버 문제 - DFS 문풀 (Java) (0) | 2023.06.29 |
---|---|
프로그래머스 | LV.2 크기가 작은 부분 문자열 (Java) (0) | 2023.05.22 |
프로그래머스 | Lv2. 최솟값 만들기 (Java) (0) | 2023.05.20 |
프로그래머스 | Lv2. 숫자의 표현 (Java) (0) | 2023.05.20 |
프로그래머스 | Lv.1 부족한 금액 계산(Java) & 문자열 다루기 (Java) (0) | 2023.05.20 |