forked from sowon-dev/AlgorithmStudy_Java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFlippingbits.java
More file actions
30 lines (25 loc) ยท 1.28 KB
/
Flippingbits.java
File metadata and controls
30 lines (25 loc) ยท 1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package hackerrank;
public class Flippingbits {
static long flippingBits(long n) {
String stbinary ="";
//32์๋ฆฌ๋ฅผ ๋ง๋ค๊ณ 2์ง์๋ก ํํํ n์ 32์๋ฆฌ์ ๋ฃ๋๋ค. ์ด๋ ์๋ฆฌ์์ ์ซ์๊ฐ ์์ผ๋ฉด 0์ ๋ฃ๋๋ค.
String convertString = String.format("%32s", Long.toBinaryString(n)).replace(' ', '0');
//์์๋ฆฌ๋ถํฐ 0์ด๋ฉด 1์, 1์ด๋ฉด 0์ ์ถ๊ฐํ๋ค.
for (int i = 0; i < convertString.length(); i++) {
if (convertString.charAt(i) == '0') {
stbinary = stbinary + "1";
} else {
stbinary = stbinary + "0";
}
}
//String์ 2์ง๋ฒ์ผ๋ก long์ผ๋ก ๋ฐ๊พผ๋ค.
return Long.parseLong((stbinary), 2);
}
public static void main(String[] args) {
// System.out.println(flippingBits(2147483647L)+", ans: 2147483648 ์ผ์น? "+ (flippingBits(2147483647) == 2147483648L));
// System.out.println(flippingBits(1)+", ans: 4294967294 ์ผ์น? "+ (flippingBits(1) == 4294967294L));
// System.out.println(flippingBits(0)+", ans: 4294967295 ์ผ์น? "+ (flippingBits(0) == 4294967295L));
System.out.println(flippingBits(4)+", ans: 4294967291 ์ผ์น? "+ (flippingBits(4) == 4294967291L));
// System.out.println(flippingBits(123456)+", ans: 4294843839 ์ผ์น? "+ (flippingBits(123456) == 4294843839L));
}
}