로그인가입

수문 단계

300점케이스 15출제 dongbinna
10월 30일에 올라온 문제입니다.

문제

한 수로에는 수문 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, 21, 32, 43, 54, 65, 76, 87, 98
가짓수222222221

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

풀이

코드는 이 기기에서돕니다. 서버로는 나온 출력의 지문과 걸린 시간만 갑니다. 맞았는지는 서버가 정합니다.

0자1줄메모리 256MB (적어만 둡니다)기준 2.0ms

제출은 로그인 하셔야 됩니다. 공개 케이스로 돌려보는 것은 로그인 없이도 됩니다.

공개 케이스 3개로 돌려보기가 됩니다. 제출하면 숨은 케이스까지 돕니다.

이 문제를 푼 사람

아직 없습니다. 첫 번째가 되실 수 있습니다.