๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿ’ป Computer Science/- Data Structure, Algorithm

[์•Œ๊ณ ๋ฆฌ์ฆ˜ PS] ๋ฐฑ์ค€ 10844 ์‰ฌ์šด ๊ณ„๋‹จ ์ˆ˜ ์ž๋ฐ” ๋ฌธ์ œ ํ’€์ด

by Wonit 2021. 1. 27.

๋ฌธ์ œ

ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ๋ฐฑ์ค€์˜ 10844๋ฒˆ ์‰ฌ์šด ๊ณ„๋‹จ ์ˆ˜ ์˜ ์ ‘๊ทผ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ ๊ธ€ ์ž…๋‹ˆ๋‹ค.
์ •๋‹ต ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹œ๋ ค๋ฉด solve url ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ๋จผ์ € ์ƒ๊ฐํ•ด๋ณด์ž.

ํ•ด๊ฒฐ๋ฒ•

์šฐ์„  ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ž๋ฆฌ์ˆ˜์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ๋จผ์ € ์•Œ์•„์•ผ ํ•œ๋‹ค.

 

45765 ์ด๋ผ๋Š” ์ˆ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ์ˆ˜๋Š” ๊ฐ€์žฅ ์™ผ์ชฝ์˜ ์ˆ˜๊ฐ€ ์ œ์ผ ๋†’์€ ์ž๋ฆฌ ์ˆ˜๊ฐ€ ๋œ๋‹ค.


์ฆ‰

  4     5     7     6    5
5์ž๋ฆฌ  4์ž๋ฆฌ  3์ž๋ฆฌ  2์ž๋ฆฌ  1์ž๋ฆฌ

๊ทธ๋Ÿผ ์šฐ๋ฆฌ๋Š” ์ด ๋ฌธ์ œ๋ฅผ n๋ฒˆ์จฐ ์ž๋ฆฌ์™€ n-1 ๋ฒˆ์งธ ์ž๋ฆฌ๋กœ ์ ํ™”์‹์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

ํ˜„์žฌ n๋ฒˆ์งธ ์ž๋ฆฌ์—์„œ ์“ฐ์ผ ์ˆ˜ ์žˆ๋Š” n-1 ๋ฒˆ์จฐ ์ž๋ฆฌ์˜ ์ˆซ์ž๋“ค์˜ ์“ฐ์ž„ ํšŸ์ˆ˜๋ฅผ ๋”ํ•˜๋ฉด ์ตœ์ข… ์ ํ™”์‹์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

a[n] = [n-1]

์ ‘๊ทผ๋ฒ•

์œ„์˜ ์ ํ™”์‹์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ์ˆ˜๊ฐ€ n๋ฒˆ์งธ ์ž๋ฆฌ์—์„œ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด์ž.

 

n๋ฒˆ์จฐ ์ž๋ฆฌ์˜ ์ˆ˜๊ฐ€ ์˜ˆ๋ฅผ ๋“ค์–ด 3์ด๋ผ๊ณ  ํ•˜๋ฉด n-1๋ฒˆ์งธ ์ž๋ฆฌ์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ํšŸ์ˆ˜๋Š” ์ด 2ํšŒ์ด๋‹ค.


23, 32.


๊ทธ๋Ÿผ ๋ชจ๋“  n๋ฒˆ์จฐ ์ž๋ฆฌ์˜ ์ˆ˜ (0~9๊นŒ์ง€)๋Š” ์œ„์™€ ๊ฐ™์ด 2๋ฒˆ ์“ฐ์ผ๊นŒ?

 

๋‹ค์Œ ๊ฒฝ์šฐ๋ฅผ ๋ด๋ณด์ž.

 

  1. 0์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ˆ˜๋Š” ์—†์œผ๋‚˜ 0์œผ๋กœ ๋๋‚˜๋Š” ๊ณ„๋‹จ ์ˆ˜๋Š” ์กด์žฌํ•จ. ์ฆ‰ 10 ์—์„œ๋งŒ ์“ฐ์ผ ์ˆ˜ ์žˆ์Œ
  2. 9๋Š” n-1๋ฒˆ์งธ ์ˆ˜์˜ 8์—์„œ๋งŒ ์“ฐ์ผ ์ˆ˜ ์žˆ์Œ.

๊ฑฐ๊ธฐ์— ์šฐ๋ฆฌ๊ฐ€ ์ฐพ์€ ์กฐ๊ฑด n๋ฒˆ์งธ ์ž๋ฆฌ ์ˆ˜ m์€ n-1๋ฒˆ์งธ์—์„œ 2๋ฒˆ์”ฉ ์‚ฌ์šฉ๋จ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ ํ™”์‹์ด ๋„์ถœ๋œ๋‹ค.

// n: n๋ฒˆ์จฐ ์ž๋ฆฌ์ˆ˜
// m: n์ž๋ฆฌ ์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” ์ˆ˜ 0 ~ 9

// m์ด 0์ธ ๊ฒฝ์šฐ
a[n][m] = a[n-1][1];
// m์ด 1 ~ 8 ์‚ฌ์ด์ธ ๊ฒฝ์šฐ
a[n][m] = a[n-1][m+1] + a[n-1][m-1];

// m์ด 9์ธ ๊ฒฝ์šฐ
a[n][m] = a[n-1][9];

์˜ค๋‹ต ํ›„๋ณด

๊ทธ๋ฆฌ๊ณ  ์ฃผ์˜ํ•ด์•ผํ•  ๊ฒƒ์ด ์ด๋ฒˆ์—๋„ ์—ญ์‹œ mod ์—ฐ์‚ฐ์ด ์•„๋‹๊นŒ ์‹ถ๋‹ค.

 

์ด๋ฒˆ์—๋Š” ๊ธฐ์กด ๋ชจ๋“ˆ๋Ÿฌ์™€ ์กฐ๊ธˆ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

 

10์–ต์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋ผ๋ผ๋Š” ์ด์œ ๊ฐ€ ์šฐ๋ฆฌ๊ฐ€ ์–ด๋–ค ์ˆ˜๋ฅผ ๋„˜์–ด๊ฐ€๋ฉด ๊ฒฐ๊ณผ๋กœ 10์–ต์ด ๋„˜๊ฒŒ ๋‚˜์™€์„œ ์ •์ˆ˜ ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


๊ทธ๋Ÿผ ํ•˜๋‚˜์˜ ์›์†Œ ๊ฐ’์€ (arr[n][m]) ์ตœ๋Œ€ 10์–ต์ด ๋  ์ˆ˜ ์žˆ๊ณ  (arr[n])์˜ ํฌ๊ธฐ๋Š” ์ตœ๋Œ€ 100์–ต - arr[n][0]์ด ๋  ์ˆ˜ ์žˆ๋‹ค.


๊ทธ๋ž˜์„œ ๊ฐ’์„ ์ €์žฅํ•  ๋•Œ์—๋„ ๋ชจ๋“ˆ๋Ÿฌ๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค.


์—ฌ๊ธฐ์„œ ๋์ผ๊นŒ?


๊ฐ’์„ ์ €์žฅํ•  ๋•Œ๋„ ๋ชจ๋“ˆ๋Ÿฌ๋กœ ๋„ฃ์–ด์คฌ์œผ๋ฉด ์ตœ์•…์˜ ๊ฒฝ์šฐ ์ถœ๋ ฅํ•  ๋•Œ๋„ 100์–ต ์–ธ์ €๋ฆฌ๊ฐ€ ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ถœ๋ ฅ์„ ํ•  ๋•Œ๋„ ๋ชจ๋“ˆ๋Ÿฌ๋ฅผ ์ˆ˜ํ–‰ํ•ด์ฃผ์ž.


์ด๊ฒƒ ๋•Œ๋ฌธ์— ๋งŽ์ด ํ‹€๋ ธ๋‹ค..

์ •๋‹ต ์ฝ”๋“œ

import java.io.*;
public class Main{
  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

    int n = Integer.parseInt(br.readLine());

    int[][] arr = new int[101][10];
    for(int i = 1; i <= 9; i++) arr[1][i] = 1;

    for(int i = 2; i <= n; i++){
      arr[i][0] = arr[i-1][1];
      arr[i][9] = arr[i-1][8];
      for(int j = 1; j <= 8; j++) {
        arr[i][j] = (arr[i-1][j+1] + arr[i-1][j-1]) % 1000000000;
      }
    }
    int answer = 0;

    for(int i = 0; i <= 9; i++) {
      answer = (answer + arr[n][i]) % 1000000000;
    }

    bw.write(String.valueOf(answer));
    bw.flush();
    bw.close();
  }
}

์ •๋‹ต ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹œ๋ ค๋ฉด solve url ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€