C++/공부 정리

path 전역 배열, n차원 배열

sondiaa 2021. 10. 5. 06:54

path 전역 배열

재귀 호출 시 경로를 추적하기 위해 path 배열을 사용한다. 

현재 시점이 어디인지도 정확히 알 수 있다.

 

과정

1. 진입할 노드를 path 배열에 기록한다.

2. 다음 level 재귀 호출

3. path 배열 기록 지우기

 

level = 3 일 때 경로를 출력하기

#include <iostream>
using namespace std;
char path[3];
void run(int level)
{
    if(level == 3)
    {
        cout << path << '\n';
        return;
    }
    for(int i=0; i<3; i++)
    {
        path[level] = 'A' + i;
        run(level+1);
        path[level] = 0;
    }
}
int main()
{
    run(0);
    return 0;
}

level = 3 일 때 배열에 저장된 경로를 출력하기

#include <iostream>
using namespace std;
char name[4] = "BAK", path[3];
void run(int level)
{
    if(level == 3)
    {
        cout << path << '\n';
        return;
    }
    for(int i=0; i<3; i++)
    {
        path[level] = name[i];
        run(level+1);
        path[level] = 0;
    }
}
int main()
{
    run(0);
    return 0;
}

n차원 배열

n차원을 생각하지말고 3차원의 경우 2차원 배열이 갯수라고 생각하고 4차원 배열의 경우 해당 3차원 배열의 갯수라고 생각하는게 좋다.