컴퓨터공학/알고리듬 풀이

백준-조합론 24723 녹색거탑

cyphen156 2025. 7. 9. 09:32

녹색거탑

맨 위 층부터 시작해서 바닥에 도착하는 경우의 수를 찾아라.

다음과 같은 규칙으로 구성되어 있다고 한다.

  • 그림의 시야에 보이지 않는 블록은 없다.
  • 그림의 시야에 보이는 블록의 윗면만 이용해 녹색거탑을 내려올 수 있다.
  • 녹색거탑이 층이면, 총 개의 블록을 이용한 최단 경로로만 내려온다.
  • 녹색거탑을 내려올 때는 정상에서 시작해 노란색 바닥까지, 항상 인접한 아래층의 블록으로만 내려온다.

2차원으로 시각화 한다면 다음과 같이 그릴 수 있다.

제약사항

  • 0 < N <= 5
  • 항상 인접한 한 블록으로만 내려간다.
  • 옆으로 이동하는 경우는 없다 / 항상 아래로만 진행한다.

주의 사항

없다.

CPP풀이

녹색거탑_24723.cpp

/**
 * 백준 녹색거탑_24723
 * 맨 위 층부터 시작해서 바닥에 도착하는 경우의 수를 찾아라
 * 다음과 같은 규칙으로 구성되어 있다고 한다.
 * 그림의 시야에 보이지 않는 블록은 없다.
 * 그림의 시야에 보이는 블록의 윗면만 이용해 녹색거탑을 내려올 수 있다.
 * 녹색거탑이 $N$층이면, 총 $N$개의 블록을 이용한 최단 경로로만 내려온다.
 * 녹색거탑을 내려올 때는 정상에서 시작해 노란색 바닥까지, 항상 인접한 아래층의 블록으로만 내려온다.
 * 2차원으로 시각화 한다면 다음과 같이 그릴 수 있다.
 * 
 * 제한사항
 ****************************************************
 * 0 < N <= 5                                       *
 * 항상 인접 한 블록으로만 내려간다.                   *
 * 옆으로 이동하는 경우는 없다 / 항상 아래로만 진행한다 *
 ****************************************************
 *
 *
 *
 * 주의
 * 없다.
 * 
 * 풀이시간 10분
 */


#include <iostream>

using namespace std;

int main(void)
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    
    int N;
    cin >> N;

    int result = 1;
    for (int i = 0; i < N; ++i)
    {
        result *= 2;
    }

    cout << result << '\n';
    return 0;
}

모든 예제 코드의 소스파일은 제 개인 깃허브 레포지토리에 있습니다.

 

Workspace/알고리듬 풀이 at main · cyphen156/Workspace

Studying . Contribute to cyphen156/Workspace development by creating an account on GitHub.

github.com