[C++] 백준/Silver/1309. 동물원

2025. 2. 4. 20:53·C++/Algorithm

문제: 동물원(백준 1309번)

문제 분석

3칸짜리 우리에 사자를 배치하는 문제로, 각 줄에 사자를 배치하는 경우의 수를 구하는 DP 문제다.
조건: 같은 줄에 사자를 가로로 붙어있게 배치할 수 없다.

점화식 도출:

  • dp[i] = i번째 줄까지 사자를 배치하는 경우의 수
  • 세 가지 경우의 수:
    1. 사자를 배치하지 않는 경우
    2. 왼쪽 칸에 사자를 배치하는 경우
    3. 오른쪽 칸에 사자를 배치하는 경우

이 조건을 고려하면 점화식은 다음과 같다.

$dp[i]=(dp[i−1]×2)+dp[i−2]dp[i] = (dp[i-1] \times 2) + dp[i-2]$

  • dp[i-1] × 2: 이전 줄에서의 모든 배치 경우에 대해, 이번 줄에 왼쪽 또는 오른쪽에 사자를 추가하는 경우
  • dp[i-2]: 두 줄 전의 배치에 이번 줄을 빈 상태로 두는 경우 (붙어있을 수 없기 때문)

초기값

  • dp[0] = 1: 아무 줄이 없을 때의 경우의 수 (공집합)
  • dp[1] = 3: 한 줄일 때의 경우의 수 (왼쪽 배치, 오른쪽 배치, 배치하지 않음)

전체 코드

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(0); cin.tie(0);
    int n; cin >> n;
    vector<int> dp(n + 1);
    dp[0] = 1, dp[1] = 3;
    for (int i = 2; i <= n; i++) {
        dp[i] = dp[i - 1] * 2 + dp[i - 2];
        dp[i] %= 9901;
    }
    cout << dp[n];
}

'C++ > Algorithm' 카테고리의 다른 글

[C++] 백준/Gold/1068. 트리  (0) 2025.02.06
[C++] 백준/Silver/5014. 스타트링크  (1) 2025.02.05
[C++] 백준/Gold/1655. 가운데를 말해요  (1) 2025.02.03
[C++] 백준/Silver/1004. 어린 왕자  (0) 2025.01.24
[C++] 백준/Gold/2225. 합분해  (0) 2025.01.23
'C++/Algorithm' 카테고리의 다른 글
  • [C++] 백준/Gold/1068. 트리
  • [C++] 백준/Silver/5014. 스타트링크
  • [C++] 백준/Gold/1655. 가운데를 말해요
  • [C++] 백준/Silver/1004. 어린 왕자
돼지표
돼지표
https://github.com/wkdgns135
  • 돼지표
    돼지표 개발 스토리
    돼지표
  • 전체
    오늘
    어제
    • 분류 전체보기 (101) N
      • C++ (59) N
        • Algorithm (53) N
      • Python (1)
      • Machine Learning (2)
      • Computer Graphics (4)
        • Curly Hair Simulation (2)
      • GPU Programming (11)
        • CUDA basic (7)
        • CUDA fluidsGL (4)
      • Unreal 5 (20)
        • Troubleshooting (4)
        • FPS Shooting (5)
        • Study (9)
        • EOS (1)
      • Computer Science (4) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    그래프 탐색
    아이작 맵 생성
    GPU Programming
    구현
    Algorithm
    C++
    그리디 알고리즘
    FPS
    수학
    CS
    CUDA
    위상 정렬
    자료 구조
    Fluid Simulation
    dp
    BFS
    Rendering Pipeline
    UE5
    unreal 5
    OpenGL
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
돼지표
[C++] 백준/Silver/1309. 동물원
상단으로

티스토리툴바