From eacc98d4f05029f4119b0aa94bc5966a6216d70b Mon Sep 17 00:00:00 2001 From: longrunpc Date: Wed, 8 Apr 2026 02:49:31 +0900 Subject: [PATCH] =?UTF-8?q?Solve(divid=5Fconquer):=20BOJ=2018222=20"?= =?UTF-8?q?=ED=88=AC=EC=97=90-=EB=AA=A8=EC=8A=A4=20=EB=AC=B8=EC=9E=90?= =?UTF-8?q?=EC=97=B4"=20=EB=AC=B8=EC=A0=9C=20=ED=92=80=EC=9D=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- boj/solved/divide_conquer/18222/Main.java | 34 +++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 boj/solved/divide_conquer/18222/Main.java diff --git a/boj/solved/divide_conquer/18222/Main.java b/boj/solved/divide_conquer/18222/Main.java new file mode 100644 index 0000000..1f4957c --- /dev/null +++ b/boj/solved/divide_conquer/18222/Main.java @@ -0,0 +1,34 @@ +import java.io.*; +import java.util.*; + +class Main { + static long n; + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + n = Long.parseLong(br.readLine()); + + long size = 1; + while(size < n) { + size *= 2; + } + + int reverseCount = 0; + while(size > 1) { + long tmp = size/2; + if(tmp < n) { // 오른쪽에 있을 경우 + size -= tmp; + n -= tmp; + reverseCount +=1; + } + else { + size -= tmp; + } + } + + System.out.println(reverseCount % 2); + } +} +// 01101001 10010110 +// 12 16 -> 4 8 -> 4 4 -> 2 2 -> 1 1 +// r r r +// 반으로 나눴을때 오른쪽에 있으면 reverse 왼쪽은 그대로 \ No newline at end of file