Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- UE4
- know
- 코로나19
- 제5인격
- 변수
- 형변환
- ISTQB
- I'm glad
- relif
- might have p.p
- C++
- Realtime Rendering
- 명절 표현
- for ing
- 명세기반테스트
- 게임QA
- html
- continue to
- java
- it's a good thing
- metascore
- by any chance
- gameQA
- if조건절
- by until
- counldn't have
- keep -ing
- happen to
- end up ing
- sort함수
Archives
- Today
- Total
Records rather than Memories
다이나믹 프로그래밍 : : 타일링 문제 본문
11726번: 2×n 타일링
2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.
www.acmicpc.net
문제
2 x n 크기의 직사각형을 1x2, 2x1 타일로 채우는 방법의 수 를 구하는 프로그램을 작성하시오.
아래 그림은 2x5 크기의 직사각형을 채운 한 가지 방법의 예이다.
해당 문제의 점화식을 세워보자.
2 x 1 크기의 직사각형을 채우는 방법은 2x1 타일 하나로 채우는 방법 하나이다.
2 x 2 크기의 직삭각형은 2x1 타일 2개 혹은 1x2 타일 2개로 두가지 이다.
여기서 규칙을 찾아야 하는데
만약 열이 N인 직사각형을 채운다고 하면
N-1번째까지 채운 방법에서는 오직 2x1 타일 하나만 들어올 수 있다.
또한 N-2번째까지 채운 방법에서는 1x2타일 두 개가 들어올 수 있다. 여기서 2x1 타일 두개를 넣는 방법도 있지 않나 생각할 수 있지만 해당 방법은 N-1번째까지 채운 방법에서 2x1타일을 한개 넣은 시점에서 들어갈 방법은 2x1타일 넣는 것 밖에 없기 때문에 이미 포함된 방법이다.
따라서 점화식을 세우면
D[n] = D[n-1] + D[n-2] 이다.
'Software > C' 카테고리의 다른 글
위상 정렬(Topology Sort) (0) | 2019.12.13 |
---|---|
플로이드 와샬(Floyd Warshal) 알고리즘 (0) | 2019.12.11 |
다이나믹 프로그래밍(Dynamic Programming) (0) | 2019.12.02 |
C++ STL sort()함수 다루기 2 (0) | 2019.12.01 |
[C++] STL sort() 함수 다루기 (0) | 2019.11.30 |
Comments