File tree Expand file tree Collapse file tree 2 files changed +61
-0
lines changed
Expand file tree Collapse file tree 2 files changed +61
-0
lines changed Original file line number Diff line number Diff line change 1+ # [ Silver I] 동물원 - 1309
2+
3+ [ 문제 링크] ( https://www.acmicpc.net/problem/1309 )
4+
5+ ### 성능 요약
6+
7+ 메모리: 17688 KB, 시간: 120 ms
8+
9+ ### 분류
10+
11+ 다이나믹 프로그래밍
12+
13+ ### 제출 일자
14+
15+ 2024년 11월 25일 12:46:57
16+
17+ ### 문제 설명
18+
19+ <p >어떤 동물원에 가로로 두칸 세로로 N칸인 아래와 같은 우리가 있다.</p >
20+
21+ <p ><img alt =" " src =" https://www.acmicpc.net/upload/201004/dnfl.JPG " style =" height :223px ; width :224px " ></p >
22+
23+ <p >이 동물원에는 사자들이 살고 있는데 사자들을 우리에 가둘 때, 가로로도 세로로도 붙어 있게 배치할 수는 없다. 이 동물원 조련사는 사자들의 배치 문제 때문에 골머리를 앓고 있다.</p >
24+
25+ <p >동물원 조련사의 머리가 아프지 않도록 우리가 2*N 배열에 사자를 배치하는 경우의 수가 몇 가지인지를 알아내는 프로그램을 작성해 주도록 하자. 사자를 한 마리도 배치하지 않는 경우도 하나의 경우의 수로 친다고 가정한다.</p >
26+
27+ ### 입력
28+
29+ <p >첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다.</p >
30+
31+ ### 출력
32+
33+ <p >첫째 줄에 사자를 배치하는 경우의 수를 9901로 나눈 나머지를 출력하여라.</p >
34+
Original file line number Diff line number Diff line change 1+ import java .util .*;
2+ import java .io .*;
3+
4+ public class Main {
5+ public static void main (String [] args ) throws IOException {
6+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
7+
8+ int N = Integer .parseInt (br .readLine ());
9+ int [][] dp = new int [N +1 ][3 ]; // [i][0]: 배치X, [i][1]: 왼쪽, [i][2]: 오른쪽
10+
11+ // 초기값 설정
12+ dp [1 ][0 ] = 1 ; // 사자를 배치하지 않는 경우
13+ dp [1 ][1 ] = 1 ; // 왼쪽에 배치하는 경우
14+ dp [1 ][2 ] = 1 ; // 오른쪽에 배치하는 경우
15+
16+ // dp 진행
17+ for (int i = 2 ; i <= N ; i ++) {
18+ dp [i ][0 ] = (dp [i -1 ][0 ] + dp [i -1 ][1 ] + dp [i -1 ][2 ]) % 9901 ; // 현재 줄에 배치X
19+ dp [i ][1 ] = (dp [i -1 ][0 ] + dp [i -1 ][2 ]) % 9901 ; // 현재 줄 왼쪽에 배치
20+ dp [i ][2 ] = (dp [i -1 ][0 ] + dp [i -1 ][1 ]) % 9901 ; // 현재 줄 오른쪽에 배치
21+ }
22+
23+ // 최종 결과 계산
24+ int answer = (dp [N ][0 ] + dp [N ][1 ] + dp [N ][2 ]) % 9901 ;
25+ System .out .println (answer );
26+ }
27+ }
You can’t perform that action at this time.
0 commit comments