From f748e65cb15234612cfd78abbc4926d5292690c5 Mon Sep 17 00:00:00 2001 From: junyoungKim Date: Thu, 1 Jan 2026 22:37:13 +0900 Subject: [PATCH 1/3] Reverse Bits --- reverse-bits/kimjunyoung90.java | 41 +++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 reverse-bits/kimjunyoung90.java diff --git a/reverse-bits/kimjunyoung90.java b/reverse-bits/kimjunyoung90.java new file mode 100644 index 0000000000..286c8f9a7f --- /dev/null +++ b/reverse-bits/kimjunyoung90.java @@ -0,0 +1,41 @@ +class Solution { + public int reverseBits(int n) { + + //1. 이진수 변환 + String binary = toReverseBinary(n); + + //2. 10진수 출력 + int result = toNumber(binary); + return result; + } + + private int toNumber(String binary) { + int result = 0; + for (int i = binary.length(); i > 0 ; i--) { + char nChar = binary.charAt(i - 1); + result += (nChar == '0' ? 0 : 1) * square(32 - i); + } + return result; + } + + private int square(int i) { + int result = 1; + for (int j = 0; j < i; j++) { + result *= 2; + } + return result; + } + + private String toReverseBinary(int n) { + StringBuilder sb = new StringBuilder(); + while(n > 0) { + int remain = n % 2; + sb.append(remain); + n /= 2; + } + while(32 >= sb.length()) { + sb.append("0"); + } + return sb.toString(); + } +} From 1b5079fa918aa58d9785d5497abd598007d8cfd0 Mon Sep 17 00:00:00 2001 From: junyoungKim Date: Thu, 1 Jan 2026 22:56:45 +0900 Subject: [PATCH 2/3] =?UTF-8?q?Reverse=20Bits=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reverse-bits/kimjunyoung90.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/reverse-bits/kimjunyoung90.java b/reverse-bits/kimjunyoung90.java index 286c8f9a7f..91e8e23c92 100644 --- a/reverse-bits/kimjunyoung90.java +++ b/reverse-bits/kimjunyoung90.java @@ -28,14 +28,10 @@ private int square(int i) { private String toReverseBinary(int n) { StringBuilder sb = new StringBuilder(); - while(n > 0) { - int remain = n % 2; - sb.append(remain); + for (int i = 0; i < 32; i++) { + sb.append(n % 2); n /= 2; } - while(32 >= sb.length()) { - sb.append("0"); - } return sb.toString(); } } From 2fcbdbb0ebbf56f2fb2d029fe3d4739d15e01a2a Mon Sep 17 00:00:00 2001 From: junyoungKim Date: Fri, 2 Jan 2026 22:04:02 +0900 Subject: [PATCH 3/3] =?UTF-8?q?Reverse=20Bits=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reverse-bits/kimjunyoung90.java | 38 ++++++++++----------------------- 1 file changed, 11 insertions(+), 27 deletions(-) diff --git a/reverse-bits/kimjunyoung90.java b/reverse-bits/kimjunyoung90.java index 91e8e23c92..1b03515b44 100644 --- a/reverse-bits/kimjunyoung90.java +++ b/reverse-bits/kimjunyoung90.java @@ -1,37 +1,21 @@ class Solution { public int reverseBits(int n) { + int result = 0; - //1. 이진수 변환 - String binary = toReverseBinary(n); + for (int i = 0; i < 32; i++) { + //1. result 새 비트 공간 확보 + result = result << 1; - //2. 10진수 출력 - int result = toNumber(binary); - return result; - } + //2. n의 마지막 비트 추출 + int last = (n & 1); - private int toNumber(String binary) { - int result = 0; - for (int i = binary.length(); i > 0 ; i--) { - char nChar = binary.charAt(i - 1); - result += (nChar == '0' ? 0 : 1) * square(32 - i); - } - return result; - } + //3. 마지막 비트 result에 추가 + result = result | last; - private int square(int i) { - int result = 1; - for (int j = 0; j < i; j++) { - result *= 2; + //4. n 계산한 비트 제거 + n = n >> 1; } - return result; - } - private String toReverseBinary(int n) { - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < 32; i++) { - sb.append(n % 2); - n /= 2; - } - return sb.toString(); + return result; } }