다희의 코딩 성장일기
[프로그래머스] level2. 다음 큰 숫자 (자바 JAVA) 본문
[ 문제 ] [프로그래머스] level2. 다음 큰 숫자 (자바 JAVA)
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/12911
# 접근 방법 및 풀이
- 문제에 주어진 대로 그대로 풀었다. 내가 처음에 푼 풀이는 첫번째 풀이인데, 다른사람 풀이 보니까 새로운 내장함수를 발견했다.
- 역시 자바는 최고다.. 그건 바로 Integer.bitCount()라는 메소드다.
- bitCount(num) num을 넣으면 binary로 변환후, 1의 개수를 반환한다!
- 따로 1의 개수를 for문으로 세주었는데 그럴 필요가 없어졌다! 충격,,
- 아무튼 프로그래머스 문제 풀다보면 새로운 내장함수들을 많이 알게되서 좋다.
# 주의할 점
- 딱히 없음
JAVA 코드
첫번째 풀이
class Solution {
public int solution(int n) {
int answer = n+1;
String s = Integer.toString(n, 2);
int cnt = 0;
for(int i = 0; i < s.length(); i++){
if(s.charAt(i) == '1')
cnt++;
}
while(true){
int cnt2 = 0;
String ss = Integer.toString(answer, 2);
for(int i = 0; i < ss.length(); i++){
if(ss.charAt(i) == '1')
cnt2++;
}
if(cnt == cnt2)
break;
answer++;
}
return answer;
}
}
두번째 풀이
class Solution {
public int solution(int n) {
int answer = n+1;
int cnt = Integer.bitCount(n); // n -> bit -> 1의 숫자를 세줌
while(true){
if(cnt == Integer.bitCount(answer))
break;
answer++;
}
return answer;
}
}
REVIEW
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] level2. 신규 아이디 추천 (자바 JAVA) (0) | 2021.08.25 |
---|---|
[프로그래머스] level2. 스킬트리 (자바 JAVA) (0) | 2021.08.25 |
[프로그래머스] level1. 소수 만들기 (자바 JAVA) (0) | 2021.08.25 |
[프로그래머스] level2. 괄호 변환 (자바 JAVA) (0) | 2021.08.24 |
[프로그래머스] level2. 올바른 괄호 (자바 JAVA) (0) | 2021.08.24 |
Comments