๊ธฐ๋ก๋ฐฉ

BOJ_24389 : 2์˜ ๋ณด์ˆ˜ ๋ณธ๋ฌธ

CodingTest/Java

BOJ_24389 : 2์˜ ๋ณด์ˆ˜

Soom_1n 2022. 12. 5. 23:17

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

24389๋ฒˆ: 2์˜ ๋ณด์ˆ˜

์ปดํ“จํ„ฐ๋Š” ๋บ„์…ˆ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ๋‚ด๋ถ€์ ์œผ๋กœ 2์˜ ๋ณด์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์–ด๋–ค ์ˆ˜์˜ 2์˜ ๋ณด์ˆ˜๋Š” ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž์˜ ๋ชจ๋“  ๋น„ํŠธ๋ฅผ ๋ฐ˜์ „์‹œํ‚จ ๋’ค, 1์„ ๋”ํ•ด ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ, 32๋น„ํŠธ ๊ธฐ์ค€์œผ๋กœ ์ฒ˜์Œ ํ‘œํ˜„ํ–ˆ๋˜ ์ˆ˜์™€

www.acmicpc.net



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • ์ฃผ์–ด์ง„ ์ˆ˜๋ฅผ 2์ง„์ˆ˜๋กœ ๋ฐ”๊พผ ๊ฐ’๊ณผ ๊ทธ ๊ฐ’์„ 2์˜ ๋ณด์ˆ˜๋กœ ๋ฐ”๊พผ ๊ฐ’์˜ 0๊ณผ 1์˜ ์ฐจ์ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] arr1 = new int[32];
        int[] arr2 = new int[32];

        for (int i = 31; i >= 0; i--) {
            arr1[i] = n % 2;
            n /= 2;
            if (n == 0) break;
        }
        for (int i = 31; i >= 0; i--) {
            arr2[i] = 1 - arr1[i];
        }

        arr2[31]++;

        int idx = 31;
        while (arr2[idx] == 2) {
            arr2[idx--] = 0;
            if (idx >= 0)
                arr2[idx]++;
        }

        int answer = 0;
        for (int i = 31; i >= 0; i--) {
            if (arr1[i] != arr2[i])
                answer++;
        }
        System.out.println(answer);
    }
}

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • n์„ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
    • ๋ชซ์ด 0์ด๋ ๋•Œ๊นŒ์ง€ 2๋กœ ๋‚˜๋ˆ ์„œ ๋‚˜๋จธ์ง€๋ฅผ ์ €์žฅํ•œ๋‹ค.
    • 32๋น„ํŠธ์ด๋ฏ€๋กœ ๋ฐ˜๋ณต์˜ ์ตœ๋Œ€๋Š” 32๋ฒˆ์ด๋‹ค.
  • 2์ง„์ˆ˜๊ฐ€ ๋œ n์˜ ๊ฐ’์„ 0์ด๋ฉด 1, 1์ด๋ฉด 0์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  1์„ ๋”ํ•œ๋‹ค.
    • ๋”ํ•ด์„œ 2๊ฐ€๋˜๋ฉด ๋‹ค์Œ ์ž๋ฆฌ๋ฅผ +1ํ•œ๋‹ค.
  • 32๊ฐœ์˜ ์ž๋ฆฌ์ˆ˜๋ฅผ ๋น„๊ตํ•˜๋ฉฐ ๋‹ค๋ฅธ ์ˆ˜๋ฅผ ์นด์šดํŠธํ•˜๊ณ  ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • java์˜ 2์ง„์ˆ˜ ๋ณ€ํ™˜์„ ํ•ด์ฃผ๋Š” toBinaryString ๋ฉ”์†Œ๋“œ๊ฐ€ ์žˆ์ง€๋งŒ String์œผ๋กœ ๋ณ€ํ™˜๋˜์„œ ๊ณ„์‚ฐ์ด ๋ณต์žกํ•ด์งˆ๊นŒ๋ด ์ง์ ‘ ๊ตฌํ˜„ํ–ˆ๋‹ค.
  • ์›๋ž˜๋Š” ๋น„ํŠธ๋งˆ์Šคํ‚น์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์–ด ๋ณด์ธ๋‹ค.

728x90

'CodingTest > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

BOJ_9733 : ๊ฟ€๋ฒŒ  (0) 2022.12.06
BOJ_11971 : ์†๋„ ์œ„๋ฐ˜  (0) 2022.12.06
BOJ_3595 : ๋งฅ์ฃผ ๋ƒ‰์žฅ๊ณ   (0) 2022.12.05
BOJ_4158 : CD  (0) 2022.12.01
BOJ_3447 : ๋ฒ„๊ทธ์™•  (0) 2022.12.01