๊ธฐ๋ก๋ฐฉ

BOJ_1904 : 01ํƒ€์ผ ๋ณธ๋ฌธ

CodingTest/Java

BOJ_1904 : 01ํƒ€์ผ

Soom_1n 2022. 12. 18. 12:29

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

 

1904๋ฒˆ: 01ํƒ€์ผ

์ง€์›์ด์—๊ฒŒ 2์ง„ ์ˆ˜์—ด์„ ๊ฐ€๋ฅด์ณ ์ฃผ๊ธฐ ์œ„ํ•ด, ์ง€์›์ด ์•„๋ฒ„์ง€๋Š” ๊ทธ์—๊ฒŒ ํƒ€์ผ๋“ค์„ ์„ ๋ฌผํ•ด์ฃผ์…จ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๊ฐ๊ฐ์˜ ํƒ€์ผ๋“ค์€ 0 ๋˜๋Š” 1์ด ์“ฐ์—ฌ ์žˆ๋Š” ๋‚ฑ์žฅ์˜ ํƒ€์ผ๋“ค์ด๋‹ค. ์–ด๋Š ๋‚  ์ง“๊ถ‚์€ ๋™์ฃผ๊ฐ€ ์ง€์›์ด

www.acmicpc.net



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

  • ํƒ€์ผ์„ ๋†“๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ n์— ๋”ฐ๋ผ ๋‚˜์—ดํ•˜๋ฉด 1, 2, 3, 5, 8...์ˆœ์œผ๋กœ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์ด๋‹ค.

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

import java.util.Scanner;

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

        dp[1] = 1;
        dp[2] = 2;

        for (int i = 3; i < n+1; i++) {
            dp[i] = (dp[i-1] + dp[i-2]) % 15746;
        }

        System.out.println(dp[n]);
    }
}

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

  • ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์„ int๋ฐฐ์—ด dp์— ์ €์žฅํ•˜๊ณ , ๊ฐ’์€ 15746์˜ ๋‚˜๋จธ์ง€๋กœ ๊ณ„์† ๊ณ„์‚ฐํ•œ๋‹ค.
    • ์ˆ˜์—ด์˜ ์ตœ๋Œ€๊ฐ’์ด 15745์ด๊ณ , ๊ฐ’์„ ๋”ํ• ๋•Œ 15745*2๋”๋ผ ํ•˜๋”๋ผ๋„ int์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜์ง€ ์•Š์Œ์œผ๋กœ dp๋Š” intํ˜• ๋ฐฐ์—ด์ด๋‹ค.
    • n์ด 1์ผ๋•Œ dp[2]์— ๊ฐ’์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋„๋ก dp์˜ ํฌ๊ธฐ๋Š” n+2์ด๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • n์˜ ์ตœ๋Œ€๊ฐ’ 1,000,000์„ ๋„ฃ์—ˆ์„๋•Œ ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฌ์ง€ ์•Š์•„์„œ ๋ฐ”๋กœ ์ œ์ถœํ–ˆ๋Š”๋ฐ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค.
    • dp์˜ ํฌ๊ธฐ๋ฅผ n+1๋กœ ํ–ˆ์—ˆ๋Š”๋ฐ, n์ด 1์ผ๋•Œ dp[2]์— ๊ฐ’์„ ๋„ฃ์„ ์ˆ˜ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋‚ฌ์—ˆ๋‹ค.
    • ์ตœ๋Œ€๊ฐ’ ๋ง๊ณ ๋„ ์ตœ์†Œ๊ฐ’๋„ ๊ผญ ๋„ฃ์–ด๋ณด๋„๋ก ํ•˜์ž...

728x90

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

BOJ_11656 : ์ ‘๋ฏธ์‚ฌ ๋ฐฐ์—ด  (0) 2022.12.30
BOJ_13305 : ์ฃผ์œ ์†Œ  (0) 2022.12.29
BOJ_14501 : ํ‡ด์‚ฌ  (0) 2022.12.17
BOJ_15657 : N๊ณผ M (8)  (0) 2022.12.15
BOJ_15656 : N๊ณผ M (7)  (0) 2022.12.14