๋ฐ์ํ
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ค์ ํฐ ์ซ์
https://programmers.co.kr/learn/courses/30/lessons/12911
๋ฌธ์ ์ ๊ทผ
์ฒ์์ ์ ๊ทผํ ๋๋ Integer.toBinaryString() ํจ์๋ฅผ ์ด์ฉํด์ stringํํ์ 2์ง์๋ก ๋ณํํ ํ 1์ ๊ฐ์๋ฅผ ์ธ๊ณ , n+1๋ถํฐ 1์ ๊ฐ์๊ฐ ๊ฐ์ ๋๊น์ง while๋ฌธ์ ๋๋ ธ๋ค.
๋ค ํ๊ณ ๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๋ณด๋๊น Integer.countBit()๋ฅผ ์ด์ฉํ๋ฉด 1์ ๊ฐ์๋ฅผ ๋ฐํํด์ฃผ๋ ํจ์๊ฐ ์์ด์ ๋ ์ฝ๊ฒ ํ์๋ค.
Code
Integer.toBinaryString()์ด์ฉํ ํ์ด
class Solution {
public int solution(int n) {
String binaryNum = Integer.toBinaryString(n);
int oneCnt = countOne(binaryNum);
int newCnt = -1;
int newNum = n;
while(oneCnt != newCnt){
newNum++;
newCnt = countOne((Integer.toBinaryString(newNum)));
}
return newNum;
}
public int countOne(String str){
int cnt = 0;
for(char ch: str.toCharArray()){
if(ch == '1') cnt++;
}
return cnt;
}
}
Integer.bitCount()์ด์ฉํ ํ์ด
class Solution {
public int solution(int n) {
int oneCnt = Integer.bitCount(n);
int newCnt = -1;
int newNum = n;
while(oneCnt != newCnt){
newNum++;
newCnt = Integer.bitCount(newNum);
}
return newNum;
}
}
์ด๋ ค์ ๋ ์ / ๋ฐฐ์ด ์ / ๋๋ ์
์ ๋ง ์ ์ฉํ ํจ์๋ค์ด ๋๋ฌด ๋ง๋ค... ์ค๋๋ ์ด๋ ๊ฒ bitCount๋ฅผ ๋ฐฐ์๊ฐ๋ค...
๋ฐ์ํ
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm/Java][๋ฐฑ์ค] 1865 ์ํ (0) | 2022.04.07 |
---|---|
[Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ํ๊ฒ ๋๋ฒ (0) | 2022.04.06 |
[Algorithm/Java][๋ฐฑ์ค] 1167 ํธ๋ฆฌ์ ์ง๋ฆ (0) | 2022.04.04 |
[Algorithm/Java][๋ฐฑ์ค] 1967 ํธ๋ฆฌ์ ์ง๋ฆ (0) | 2022.04.04 |
[Algorithm/Java][๋ฐฑ์ค] 11729 ํ๋ ธ์ด ํ ์ด๋ ์์ (0) | 2022.04.01 |