[백준 4779] 칸토어 집합

alsry._.112·2023년 10월 27일
0

백준

목록 보기
96/102

🔗문제 풀러가기
단계별로 풀어보기 단계 21의 5번째 문제이다.

문제 분석



위 사진은 칸토어 집합의 실행 결과이다.
n의 칸토어 집합은

(n-1의 칸토어집합) (n-1의 칸토어집합의 길이만큼의 공백) (n-1의 칸토어집합) 으로 이루어진 것을 알 수 있다.

이를 이용해 재귀함수를 이용하여 문제를 해결하였다.

재귀함수에 대해 정리한 글

코드

#include <iostream>
#include <cmath>
using namespace std;

void Cantor(int n)
{
    int size = pow(3, n - 1);

    if (n == 0)
    {
        cout << "-";
        return;
    }

    Cantor(n - 1);
    for (int i = 0; i < size; i++)
    {
        cout << " ";
    }
    Cantor(n - 1);
}

int main()
{
    int n;
    while (cin >> n)
    {
        Cantor(n);
        cout << endl;
    }
}

해석

  1. 수를 입력받아 Cantor함수를 실행한다.
  2. Cantor(n-1)를 실행하고, n-1의 칸토어집합의 길이만큼의 공백을 출력한다. 그후 Cantor(n - 1)을 다시 한번 실행한다.
  3. 만약 매개변수로 들어온 n이 0이라면, -를 출력하고 재귀를 끝낸다.
profile
소통해요

0개의 댓글