๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/12911
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
์์ฐ์ 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 ์ดํ์ ์์ฐ์์ ๋๋ค.
์ ์ถ๋ ฅ ์
n | result |
78 | 83 |
15 | 23 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ๋ฌธ์ ์์์ ๊ฐ์ต๋๋ค.
์ ์ถ๋ ฅ ์ #2
- 15(1111)์ ๋ค์ ํฐ ์ซ์๋ 23(10111)์ ๋๋ค.
๋ด๊ฐ ์์ฑํ ์ฝ๋
class Solution {
public int solution(int n) {
int answer = 0;
// n์ ์ด์ง์๋ก ๋ณํํ ํ, 1์ ๊ฐ์ ์ ์ฅ
String binaryN = Integer.toBinaryString(n); // ์: 78 -> "1001110"
binaryN = binaryN.replace("0", ""); // 0 ์ ๊ฑฐ -> "1111"
int nLength = binaryN.length(); // 1์ ๊ฐ์ -> 4
// n๋ณด๋ค 1 ํฐ ์๋ถํฐ ์์ํด์ ๋ฐ๋ณต
int m = n+1;
String binaryM = Integer.toBinaryString(m);
binaryM = binaryM.replace("0", "");
int mLength = binaryM.length();
// 1์ ๊ฐ์๊ฐ ๊ฐ์ ๋๊น์ง ๋ฐ๋ณต
while (nLength != mLength) {
m++; // ๋ค์ ์๋ก ๋์ด๊ฐ
binaryM = Integer.toBinaryString(m); // ์ด์ง์๋ก ๋ณํ
binaryM = binaryM.replace("0", ""); // 0 ์ ๊ฑฐํด์ 1๋ง ๋จ๊น
mLength = binaryM.length(); // 1์ ๊ฐ์ ์ ์ฅ
}
// answer์ m์ ๊ฐ ์ ์ฅ
answer = m;
// answer ๋ฐํ
return answer;
}
}
๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ์๊ฐํ ๋ฐฉํฅ
n์ ์ด์ง์๋ก ๋ณํํ ํ “0”์ ๊ณต๋ฐฑ์ผ๋ก ๋ฐ๊พผ๋ค.
๊ทธ๋ค์ ๊ธธ์ด๋ฅผ ์ ์ฅํ๋ค.
1์ฉ ์ฆ๊ฐํ๋ฉด์ ๊ธธ์ด๊ฐ ๋์ผํ ๋ค์ ํฐ ์๋ฅผ ์ฐพ๋๋ค..?
'๐งฉ ํ๋ก๊ทธ๋๋จธ์ค > ๐ต ์๊ณ ๋ฆฌ์ฆ ํ์ด(Java)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ (1) | 2025.04.18 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ํผ๋ณด๋์น ์ (1) | 2025.04.17 |
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ์ซ์์ ํํ (0) | 2025.04.16 |
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ํฌ๊ธฐ๊ฐ ์์ ๋ถ๋ถ ๋ฌธ์์ด (0) | 2025.04.15 |
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ์ด์ง ๋ณํ ๋ฐ๋ณตํ๊ธฐ (1) | 2025.04.14 |