๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€,c++] 1991๋ฒˆ - ํŠธ๋ฆฌ ์ˆœํšŒ

by ์•ˆ์ฃผํ˜• 2022. 3. 8.

๋ฌธ์ œ

 

1991๋ฒˆ: ํŠธ๋ฆฌ ์ˆœํšŒ

์ฒซ์งธ ์ค„์—๋Š” ์ด์ง„ ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 26)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๊ฐ ๋…ธ๋“œ์™€ ๊ทธ์˜ ์™ผ์ชฝ ์ž์‹ ๋…ธ๋“œ, ์˜ค๋ฅธ์ชฝ ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋…ธ๋“œ์˜ ์ด๋ฆ„์€ A๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์•ŒํŒŒ

www.acmicpc.net

 

์ฝ”๋“œ

#include <iostream>
using namespace std;

int N;
int tree[52][2];

void preorder(int curr){
    if(curr==-1) return;
    cout<<(char)(curr+65);
    preorder(tree[curr][0]);
    preorder(tree[curr][1]);
}

void inorder(int curr){
    if(curr==-1) return;
    inorder(tree[curr][0]);
    cout<<(char)(curr+65);
    inorder(tree[curr][1]);
}

void postorder(int curr){
    if(curr==-1) return;
    postorder(tree[curr][0]);
    postorder(tree[curr][1]);
    cout<<(char)(curr+65);
}
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    cin>>N;
    
    while(N--){
        char a,b,c; cin>>a>>b>>c;
        a = a - 65;
        if(b =='.') tree[a][0]= -1;
        else tree[a][0]=b-65;
        if(c =='.') tree[a][1]= -1;
        else tree[a][1]=c-65;
    }
    
    preorder(0);    //์ „์œ„ ์ˆœํšŒ
    cout<<'\n';
    inorder(0);     //์ค‘์œ„ ์ˆœํšŒ
    cout<<'\n';
    postorder(0);   //ํ›„์œ„ ์ˆœํšŒ
    
}

 

ํ’€์ด

๊ฐ ๋…ธ๋“œ์˜ ์ด๋ฆ„์€ A๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ int๋ฐฐ์—ด์— ๋‹ด๊ธฐ ์œ„ํ•ด A์˜ ์•„์Šคํ‚ค์ฝ”๋“œ์ธ 65๋ฅผ ๋นผ์ฃผ์–ด ์ •์ˆ˜๋กœ ๋งŒ๋“ค์–ด ์‚ฝ์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ๊ฐ ์ „์œ„ ์ˆœํšŒ, ์ค‘์œ„ ์ˆœํšŒ, ํ›„์œ„ ์ˆœํšŒ์— ๋Œ€ํ•œ ๊ฐœ๋…์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ „์œ„: ํ˜„์žฌ ๋…ธ๋“œ ์ถœ๋ ฅ -> ์™ผ์ชฝ ๋…ธ๋“œ ์ˆœํšŒ -> ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ ์ˆœํšŒ
  • ์ค‘์œ„: ์™ผ์ชฝ ๋…ธ๋“œ ์ˆœํšŒ -> ํ˜„์žฌ ๋…ธ๋“œ ์ถœ๋ ฅ -> ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ ์ˆœํšŒ
  • ํ›„์œ„: ์™ผ์ชฝ ๋…ธ๋“œ ์ˆœํšŒ -> ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ ์ˆœํšŒ -> ํ˜„์žฌ ๋…ธ๋“œ ์ถœ๋ ฅ

๊ทธ๋ ‡๊ธฐ์— ์ ์ ˆํ•˜๊ฒŒ print๋ฌธ ์œ„์น˜๋ฅผ ๋„ฃ์–ด์ฃผ์–ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

๋Œ“๊ธ€