수문 단계
문제
한 수로에는 수문 N개가 물이 흐르는 방향을 따라 1번부터 N번까지 차례대로 놓여 있다. 각 수문은 0단계부터 9단계까지 열어 둘 수 있다.
수로의 물살이 급하게 바뀌면 수문이 상한다. 그래서 설정에 조건이 하나 붙는다. 번호가 1만큼 차이 나는 두 수문의 단계 차이가 정확히 1이어야 한다. 예를 들어 어떤 수문을 4단계로 열어 두었다면 그 다음 수문은 3단계나 5단계로만 열 수 있다. 4단계나 6단계로 두는 것은 조건에 맞지 않는다.
또한 1번 수문은 물이 가장 먼저 닿는 곳이라 0단계로 둘 수 없다. 2번 수문부터는 0단계로 두어도 된다.
이 조건을 모두 지키는 설정이 몇 가지인지 계산하는 프로그램을 작성하여라. 가짓수가 매우 커질 수 있으므로 가짓수를 1,000,000,000으로 나눈 나머지를 출력한다.
예를 들어 N=2인 상황을 가정하자. 1번 수문의 단계를 먼저 정하고 그에 따라 2번 수문에 올 수 있는 단계를 세어 보면 다음의 표와 같다.
| 1번 수문 | 1단계 | 2단계 | 3단계 | 4단계 | 5단계 | 6단계 | 7단계 | 8단계 | 9단계 |
|---|---|---|---|---|---|---|---|---|---|
| 올 수 있는 2번 수문 | 0, 2 | 1, 3 | 2, 4 | 3, 5 | 4, 6 | 5, 7 | 6, 8 | 7, 9 | 8 |
| 가짓수 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 1 |
1번 수문은 0단계로 둘 수 없으므로 1단계부터 9단계까지만 생각한다. 1번 수문이 9단계인 경우에는 10단계가 없으므로 2번 수문이 8단계인 경우만 남아 가짓수가 1이다. 표의 가짓수를 모두 더하면 17이므로, 현재 예시에서의 정답은 17이다.
N=1인 경우도 생각해 보자. 이웃한 수문이 없으므로 단계 차이 조건은 따질 것이 없고, 1번 수문을 0단계로 둘 수 없다는 조건만 남는다. 따라서 1단계부터 9단계까지 9가지다.
N=3인 경우에는 설정이 32가지다. N이 2에서 3으로 하나 늘어날 때 가짓수가 17에서 32로 늘어나는데, 두 배가 되지 않는다는 점을 짚어 두자. 0단계 다음에는 1단계만 올 수 있고 9단계 다음에는 8단계만 올 수 있어서, 양쪽 끝의 단계에서는 이어 붙일 수 있는 경우가 하나뿐이기 때문이다.
입출력 예시
예시 1
입력
2
출력
17
예시 2
입력
1
출력
9
예시 3
입력
100
출력
18404112
입력 조건
가장 먼저 첫째 줄에 수문의 수 N이 주어진다. N은 1 이상 100 이하의 자연수다. 입력은 이 한 줄로 끝난다. 각 수문을 몇 단계로 열어 둘 수 있는지는 입력으로 주어지지 않고, 0단계부터 9단계까지로 늘 같다.
출력 조건
조건을 모두 지키는 설정의 가짓수를 1,000,000,000으로 나눈 나머지를 한 줄에 출력한다. N이 커지면 가짓수가 매우 커지므로 나머지만 출력한다. 나머지를 구하기 전의 값을 출력해서는 안 된다.
요구사항
- 번호가 1만큼 차이 나는 두 수문의 단계 차이는 정확히 1이어야 합니다
- 1번 수문은 0단계로 둘 수 없습니다. 2번 수문부터는 0단계로 둘 수 있습니다
- 각 수문의 단계는 0 이상 9 이하의 정수입니다
- 답은 1,000,000,000으로 나눈 나머지로 출력합니다
- 표준 입력으로 읽고 표준 출력으로 내보내는 프로그램을 짜야 합니다
- 쓸 수 있는 말은 파이썬, 자바스크립트입니다
- 메모리 제한은 256MB입니다. 브라우저에서는 재지 않고 적기만 합니다
- 시간 제한은 출제자의 정답 코드를 같은 런타임에서 재서 정합니다
- 이 문제는 프롬프트가 아니라 코드를 냅니다. 그 코드는 이 기기의 브라우저에서 돌고, 서버로는 나온 출력의 지문과 걸린 시간만 갑니다. 맞았는지는 서버가 정합니다. 실행 시간은 각자 기기가 적어 보내는 값이라, 코드와 기기 정보를 순위표에 같이 내걸어 둡니다.
- 출력이 글자 하나까지 기대값과 같아야 합니다. 줄 안의 빈칸은 다른 글자와 똑같이 봅니다.
- 케이스는 15개이고, 그 가운데 3개는 입력과 기대 출력을 함께 보여 줍니다. 나머지는 제출할 때만 쓰이고 화면에는 보여 주지 않습니다.
- 케이스 15개를 전부 통과해야 해결입니다.
예시
공개 케이스 3개입니다. 채점에는 숨은 케이스가 함께 쓰입니다. 케이스 15개를 전부 통과해야 해결입니다.
1
9
2
17
100
18404112
풀이
코드는 이 기기에서돕니다. 서버로는 나온 출력의 지문과 걸린 시간만 갑니다. 맞았는지는 서버가 정합니다.
제출은 로그인 하셔야 됩니다. 공개 케이스로 돌려보는 것은 로그인 없이도 됩니다.
공개 케이스 3개로 돌려보기가 됩니다. 제출하면 숨은 케이스까지 돕니다.
이 문제를 푼 사람
아직 없습니다. 첫 번째가 되실 수 있습니다.