일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- OS
- 자료구조
- 다이나믹 프로그래밍
- 백준
- 동적계획법
- 스케줄링
- codility
- 알고리즘
- 타입 객체
- 멀티쓰레드
- 락
- 병행성 관련 오류
- 영속성
- directx
- I/O장치
- 그리디알고리즘
- 쓰레드
- 파일시스템 구현
- 디자인패턴
- 멀티프로세서
- 렌더링 파이프라인
- DirectX 12
- 다이나믹프로그래밍
- Direct12
- DirectX12
- 컨디션 변수
- 병행성
- 운영체제
- 프로그래머스
- 그리디 알고리즘
Archives
- Today
- Total
목록2xn 타일링 (1)
기록공간

동적계획법을 사용하는 문제이다. 2x1 크기부터 타일을 채울 수 있는 방법의 수를 그려보면 다음과 같은 결과가 나온다. 2x1 => 1개 2x2 => 2개 2x3 => 3개 2x4 => 5개 ..... 규칙을 보면 피보나치와 같다. F[i] = F[i - 2] + F[i - 1] 하지만 2x1000까지 방법의 수는 int로 표현할 수 없으며 10007를 나눈 나머지를 출력하라고 하였기 때문에 방법의 수를 10007로 나눈 값을 dp 테이블에 기록하면 된다. 코드는 다음과 같다. #include using namespace std; int main() { int dp[1000 + 1]; int input; cin >> input; dp[0] = 0; dp[1] = 1; dp[2] = 2; for (int ..
Algorithm/문제
2020. 2. 25. 21:21