[1904๋ฒˆ] 01ํƒ€์ผ JAVAโ˜•

2022. 5. 5. 00:41ยท๐Ÿ”ฐ ๋ฐฑ์ค€/๋™์ ๊ณ„ํš๋ฒ• 1
728x90

 

https://www.acmicpc.net/problem/1904

 

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

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

www.acmicpc.net

 


์•Œ๊ณ ๋ฆฌ์ฆ˜ [์ ‘๊ทผ ๋ฐฉ๋ฒ•]

์ด ๋ฌธ์ œ๋Š” ๋งŒ์•ฝ N=1 ๋ถ€ํ„ฐ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ญ‰ ๋‚˜์—ดํ•ด๋ณด์•˜๋‹ค๋ฉด ๋งค์šฐ ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค.

N=6๊นŒ์ง€ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋‚˜์—ดํ•ด๋ณด์•˜๋‹ค.
๊ฐœ์ˆ˜๊ฐ€ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์˜ ์ˆ˜์—ด์ฒ˜๋Ÿผ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
์ฆ‰, N=3์ผ ๋•Œ๋Š” N=1, N=2์ผ ๋•Œ์˜ ๊ฐœ์ˆ˜์˜ ํ•ฉ์ด๋‹ค.
์ด๋Š” ํ”ผ๋ณด๋‚˜์น˜ ์ ํ™”์‹๊ณผ ์ผ์น˜ํ•จ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

ํ’€์ด

1
2
3
4
5
6
7
8
9
10
11
12
static int[] dp = new int[size];    // ๋ฐฐ์—ด ๋น„์–ด์žˆ๋Š” ํ‘œ์‹œ๋Š” -1 ์ด๋ผ๊ณ  ๊ฐ€์ •
 
dp[0] = 0;
dp[1] = 1;
dp[2] = 2;
 
int Tile(int N) {
    if(dp[N] == -1) {    // ํ•ด๋‹น ๋ฐฐ์—ด์— ๊ฐ’์ด ์—†์„๊ฒฝ์šฐ ์žฌ๊ท€ํ˜ธ์ถœ
        dp[N] = Tile(N - 1) + Tile(N - 2);
     }
    return dp[N];
}
Colored by Color Scripter
cs
[์ฃผ์˜ํ•  ์ ]
int[] ๋ฐฐ์—ด์€ ๋””ํดํŠธ๊ฐ’์ด 0์œผ๋กœ ๋˜์–ด์žˆ์œผ๋ฏ€๋กœ ๋ชจ๋“  ๋ฐฐ์—ด์„ -1๋กœ ์ดˆ๊ธฐํ™”ํ•ด์ค„ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.
Integer ๋ฐฐ์—ด๋กœ ํ’€์ดํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์œผ๋‚˜ ์ž…๋ ฅ ๊ฐ’์ด 1,000,000์ด๋ผ ์ž˜๋ชปํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ์œผ๋กœ stackoverflow ์—๋Ÿฌ๋ฅผ ๋‚ด๋ฑ‰์„ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ˜„์žฌ, ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ 15746์œผ๋กœ ๋‚˜๋ˆˆ ๊ฐ’, ์ฆ‰ DP[N] % 15746 ์„ ์ถœ๋ ฅํ•ด์•ผ๋งŒ ํ•œ๋‹ค.

์ „์ฒด์ ์ธ ๊ตฌ์กฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

1
2
3
4
5
6
7
8
9
10
11
12
static int[] dp = new int[size];    // ๋ฐฐ์—ด ๋น„์–ด์žˆ๋Š” ํ‘œ์‹œ๋Š” -1 ์ด๋ผ๊ณ  ๊ฐ€์ •
 
dp[0] = 0;
dp[1] = 1;
dp[2] = 2;
 
int Tile(int N) {
    if(dp[N] == -1) {    // ํ•ด๋‹น ๋ฐฐ์—ด์— ๊ฐ’์ด ์—†์„๊ฒฝ์šฐ ์žฌ๊ท€ํ˜ธ์ถœ
        dp[N] = (Tile(N - 1) + Tile(N - 2)) % 15746;
     }
    return dp[N];
}
Colored by Color Scripter
cs

์—ฌ๊ธฐ์„œ ๋˜ ํ•˜๋‚˜ ์ฃผ์˜ํ•  ์ ์€, ๊ฐ ๋ฐฐ์—ด์— ๋‚˜๋จธ์ง€๊ฐ’์„ ์ €์žฅํ•˜๋ฉด ๋‹ค๋ฅธ ์žฌ๊ท€์—์„œ ํ•ด๋‹น ๊ฐ’์„ ์“ฐ๊ฒŒ๋  ๋•Œ, ๋‚˜๋จธ์ง€ ๊ฐ’์„ ์“ฐ๊ฒŒ๋˜๋Š”๋ฐ ๊ทธ๋Ÿฌ๋ฉด ์›๋ž˜ ๊ฐ’์˜ ๋‚˜๋จธ์ง€์™€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด ๋ถ€๋ถ„์€ ๋ชจ๋“ˆ๋Ÿฌ ์—ฐ์‚ฐ์˜ ๋ถ„๋ฐฐ๋ฒ•์น™์„ ์ดํ•ดํ•˜๋ฉด ์‰ฝ๋‹ค.

 

์ฆ‰,  (A+B) % C = (A%C + B%C) % C ๊ฐ€ ์„ฑ๋ฆฝํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ๋Š” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ์ด๋ก ์ ์œผ๋กœ O(N)์ด๋ผ ํ•˜์ง€๋งŒ ๋งค ์žฌ๊ท€๋งˆ๋‹ค ์กฐ๊ฑด๋ฌธ์„ ๊ฒ€์‚ฌํ•˜๋Š” ๋“ฑ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ปค์งˆ ์ˆ˜ ๋ฐ–์— ์—†์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ํ‘ธ๋Š” ๊ฒƒ์ด ๋”์šฑ ํšจ์œจ์ ์ด๋‹ค.


์ฝ”๋“œ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package com.linerate;
 
import java.util.Scanner;
 
public class Main {
 
    public static int[] dp = new int[1000001];;
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
 
        int N = in.nextInt();
 
 
        dp[0] = 0;
        dp[1] = 1;
        dp[2] = 2;
 
        // -1 ๋กœ ์ดˆ๊ธฐํ™”
        for(int i = 3; i < dp.length; i++) {
            dp[i] = -1;
        }
 
        System.out.println(Tile(N));
 
    }
 
    public static int Tile(int N) {
 
        if(dp[N] == -1) {
            dp[N] = (Tile(N - 1) + Tile((N - 2))) % 15746;
        }
        return dp[N];
    }
 
}
Colored by Color Scripter
cs
728x90
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)
'๐Ÿ”ฐ ๋ฐฑ์ค€/๋™์ ๊ณ„ํš๋ฒ• 1' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [1149๋ฒˆ] RGB๊ฑฐ๋ฆฌ JAVAโ˜•
  • [2579๋ฒˆ] ๊ณ„๋‹จ ์˜ค๋ฅด๊ธฐ JAVAโ˜•
  • [1932๋ฒˆ] ์ •์ˆ˜ ์‚ผ๊ฐํ˜• JAVAโ˜•
  • [1003๋ฒˆ] ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜ JAVAโ˜•
juno1105
juno1105
๊ณต๋ถ€ํ•˜๋Š” ๊ฒธ ํฌํด ๋ธ”๋กœ๊ทธ
  • juno1105
    @juno1105
    juno1105
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (89)
      • ๐Ÿ’ฌ ์ž์œ  (3)
      • ๐Ÿ“– ์–ดํ•™ ๊ณต๋ถ€ (0)
      • ๐Ÿ“” ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ (4)
      • ๐Ÿ›  ํ”„๋กœ๊ทธ๋žจ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ๋ฒ• (1)
      • ๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (53)
        • ์Šคํƒ (4)
        • ํ (4)
        • ์ •๋ ฌ ๋ฐ ํƒ์ƒ‰ (17)
        • ๋ฆฌ์ŠคํŠธ (5)
        • ํ•ด์‹œ (1)
        • ํŠธ๋ฆฌ (8)
        • ํž™ (2)
        • ๊ทธ๋ž˜ํ”„ (12)
      • ๐Ÿ’ป ์ปดํ“จํ„ฐ ๊ตฌ์กฐ (0)
      • ๐Ÿšฅ ๋…ผ๋ฆฌํšŒ๋กœ (8)
      • ๐Ÿ”ฐ ๋ฐฑ์ค€ (20)
        • ํ, ์Šคํƒ, ๋ฑ (0)
        • DFS ์™€ BFS (3)
        • ๊ทธ๋ฆฌ๋”” (0)
        • ๋™์ ๊ณ„ํš๋ฒ• 1 (16)
        • ๋™์ ๊ณ„ํš๋ฒ• 2 (0)
        • ์ตœ๋‹จ ๊ฒฝ๋กœ (0)
        • ํŠธ๋ฆฌ (0)
        • ๋ฐฑํŠธ๋ž˜ํ‚น (0)
        • ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ (0)
        • ์ง‘ํ•ฉ๊ณผ ๋งต (1)
      • ๐ŸŒˆ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (0)
      • ๐Ÿ“ฑ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

    • โœจ์ž๋ฃŒ๊ตฌ์กฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ปค๋ฆฌํ˜๋Ÿผโœจ
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ํ† ์ต 900์ ๋Œ€
    ํ† ์ต 950์ 
    ํ† ์ต 910์ 
    ๋น…์˜คํ‘œ๊ธฐ๋ฒ•
    ์ •๋ ฌ
    ์ •๋ ฌ ์ตœ์„ ์˜ ๊ฒฝ์šฐ
    ํ† ์ต 900
    ํ† ์ต
    ์‹œ๊ฐ„๋ณต์žก๋„
    ํ† ์ต 920์ 
    ์ตœ๋‹จ๊ฒฝ๋กœ
    ์ •๋ ฌ ์ตœ์•…์˜ ๊ฒฝ์šฐ
    ๊ทธ๋ž˜ํ”„ํƒ์ƒ‰
    ํ† ์ต 900์ 
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
juno1105
[1904๋ฒˆ] 01ํƒ€์ผ JAVAโ˜•
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”