Skip to content

Commit f55fdfe

Browse files
committed
[Silver III] Title: 이친수, Time: 96 ms, Memory: 9344 KB -BaekjoonHub
1 parent 58a328d commit f55fdfe

2 files changed

Lines changed: 54 additions & 0 deletions

File tree

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# [Silver III] 이친수 - 2193
2+
3+
[문제 링크](https://www.acmicpc.net/problem/2193)
4+
5+
### 성능 요약
6+
7+
메모리: 9344 KB, 시간: 96 ms
8+
9+
### 분류
10+
11+
다이나믹 프로그래밍
12+
13+
### 제출 일자
14+
15+
2026년 3월 12일 22:24:33
16+
17+
### 문제 설명
18+
19+
<p>0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다.</p>
20+
21+
<ol>
22+
<li>이친수는 0으로 시작하지 않는다.</li>
23+
<li>이친수에서는 1이 두 번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다.</li>
24+
</ol>
25+
26+
<p>예를 들면 1, 10, 100, 101, 1000, 1001 등이 이친수가 된다. 하지만 0010101이나 101101은 각각 1, 2번 규칙에 위배되므로 이친수가 아니다.</p>
27+
28+
<p>N(1 ≤ N ≤ 90)이 주어졌을 때, N자리 이친수의 개수를 구하는 프로그램을 작성하시오.</p>
29+
30+
### 입력
31+
32+
<p>첫째 줄에 N이 주어진다.</p>
33+
34+
### 출력
35+
36+
<p>첫째 줄에 N자리 이친수의 개수를 출력한다.</p>
37+
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
let input = require('fs').readFileSync('./dev/stdin').toString().trim().split('\n');
2+
let n = Number(input[0]);
3+
4+
let d = Array(n + 2).fill(0n);
5+
6+
// base
7+
d[1] = 1n;
8+
d[2] = 1n;
9+
10+
for (let i = 3; i <= n; i++) {
11+
d[i] = d[i - 1] + d[i - 2];
12+
}
13+
14+
console.log(d[n].toString());
15+
16+
// 테이블 정의 -> 점화식 -> 초기 값
17+
// -0

0 commit comments

Comments
 (0)