๊ธฐ๋ก๋ฐฉ

BOJ_2193 : ์ด์นœ์ˆ˜ ๋ณธ๋ฌธ

CodingTest/Java

BOJ_2193 : ์ด์นœ์ˆ˜

Soom_1n 2022. 11. 29. 18:52

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

 

2193๋ฒˆ: ์ด์นœ์ˆ˜

0๊ณผ 1๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ์ˆ˜๋ฅผ ์ด์ง„์ˆ˜๋ผ ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์ง„์ˆ˜ ์ค‘ ํŠน๋ณ„ํ•œ ์„ฑ์งˆ์„ ๊ฐ–๋Š” ๊ฒƒ๋“ค์ด ์žˆ๋Š”๋ฐ, ์ด๋“ค์„ ์ด์นœ์ˆ˜(pinary number)๋ผ ํ•œ๋‹ค. ์ด์นœ์ˆ˜๋Š” ๋‹ค์Œ์˜ ์„ฑ์งˆ์„ ๋งŒ์กฑํ•œ๋‹ค. ์ด์นœ์ˆ˜๋Š” 0์œผ๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š

www.acmicpc.net



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

  • ์ž๋ฆฌ์ˆ˜ n์„ ์ž…๋ ฅ๋ฐ›๊ณ  ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ด์นœ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
    • ์ด์นœ์ˆ˜๋Š” ์ด์ง„์ˆ˜์—์„œ ๋งจ ์•ž์— 1์ด์˜ค๊ณ , 11์ฒ˜๋Ÿผ 1 ๋‘ ๊ฐœ๊ฐ€ ๋ถ™์–ด์„œ ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ์—†๋Š” ์ˆ˜๋ฅผ ๋งํ•œ๋‹ค.
    • 1๋ถ€ํ„ฐ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋”ฐ์ ธ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
/*
    n       count       pinary number
    1       1           1
    2       1           10
    3       2           101 100
    4       3           1000 1001 1010
    5       5           10000 10001 10010 10100 10101
    6       8           100000 100001 100010 100100 101000 100101 101001 101010
    90      2880067194370816120
 */
  • n์ด ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ๋‹ต(count)๊ฐ€ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด ํ˜•ํƒœ๋กœ ์ฆ๊ฐ€ํ•จ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฌธ์ œ์˜ n์˜ ๋ฒ”์œ„์—์„œ ์ตœ๋Œ€๊ฐ’์ธ 90์ธ ๊ฒฝ์šฐ count๊ฐ€ int๋ฒ”์œ„๋ฅผ ์ดˆ๊ณผํ•˜๋ฏ€๋กœ longํ˜•์„ ์จ์•ผํ•œ๋‹ค.

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

import java.util.Scanner;

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

        long[] dp = new long[n+1];
        dp[0] = 0;
        dp[1] = 1;

        for (int i = 2; i <= n; i++) {
            dp[i] = dp[i-1] + dp[i-2];
        }
        System.out.println(dp[n]);
    }
}

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

  • n์„ ์ž…๋ ฅ๋ฐ›๊ณ  n+1ํฌ๊ธฐ์˜ longํ˜• ๋ฐฐ์—ด์„ ์„ ์–ธํ•œ๋‹ค.
  • ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ์ธ๋ฑ์Šค 0์—๋Š” 0์„, ์ธ๋ฑ์Šค 1์—๋Š” 1์„ ๋„ฃ๋Š”๋‹ค.
  • ์ธ๋ฑ์Šค n๊นŒ์ง€ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด ๊ณ„์‚ฐ์„ ๋ฐ˜๋ณตํ•˜๊ณ  ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ์ฒ˜์Œ์—” ๊ฐ์ด ์•ˆ์žกํ˜”์ง€๋งŒ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋”ฐ์ ธ๋ณด๋‹ˆ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ์•„์ฐจ๋ ค์„œ ์‰ฝ๊ฒŒ ํ’€์ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • dp ๋ฐฐ์—ด์˜ ์ž๋ฃŒํ˜•์„ int๋กœํ•ด์„œ 1ํšŒ ํ‹€๋ ธ๋‹ค.
    • int๋กœ ์„ ์–ธํ–ˆ์„๋•Œ์˜ ์ฝ”๋“œ์—์„œ n์„ 90์œผ๋กœ ์ž…๋ ฅํ•ด๋ดค์œผ๋ฉด int๋ฅผ ๋ฒ—์–ด๋‚œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ ์•ˆ์ผํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

728x90