[๋ฐฑ์ค€] 1991 ํŠธ๋ฆฌ ์ˆœํšŒ - ํŠธ๋ฆฌ, ์žฌ๊ท€

2024. 8. 27. 17:04ยท๐Ÿ’ป Algorithms/๋ฐฑ์ค€

[ ๋ฌธ์ œ๋งํฌ ]

https://www.acmicpc.net/problem/1991

 

๐Ÿšฉ ์กฐ๊ฑด

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

 

 

๐Ÿšฉ ์ ‘๊ทผ

ํŠธ๋ฆฌ -> ๊ตฌ์กฐ์ฒด๋กœ ๊ตฌํ˜„

์ˆœํšŒ -> ์žฌ๊ท€ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„

 

 

๐Ÿšฉ ์‹œํ–‰์ฐฉ์˜ค

- ๊ตฌ์กฐ์ฒด ์„ ์–ธ

struct NODE{
    char root;
    char left;
    char right;
};

 

- ๊ตฌ์กฐ์ฒด ๋ณ€์ˆ˜ ์„ ์–ธ ํ›„ ์ ‘๊ทผ

NODE node;
node.root = f;
node.left = s;
node.right = t;

 

- ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์กฐ์ฒด ์ดˆ๊ธฐํ™”๋„ ๊ฐ€๋Šฅ

NODE node = {f, s, t};

 

 

๐Ÿ’ป ์ฝ”๋“œ (C++)

#include <iostream>
#include <vector>
#include <string>
using namespace std;

struct NODE{
    char root;
    char left;
    char right;
};
NODE nodeArr[26];

void preorder(char root){
    cout<<root;
    if(nodeArr[root-'0'].left != '.')
        preorder(nodeArr[root-'0'].left);
    if(nodeArr[root-'0'].right != '.')
        preorder(nodeArr[root-'0'].right);
}

void inorder(char root){
    if(nodeArr[root-'0'].left != '.')
        inorder(nodeArr[root-'0'].left);
    cout<<root;
    if(nodeArr[root-'0'].right != '.')
        inorder(nodeArr[root-'0'].right);
}

void postorder(char root){
    if(nodeArr[root-'0'].left != '.')
        postorder(nodeArr[root-'0'].left);
    if(nodeArr[root-'0'].right != '.')
        postorder(nodeArr[root-'0'].right);
    cout<<root;
}

int main(){
    int N;
    cin>>N;
    char f, s, t;
    for(int i=0;i<N;i++){
        cin>>f>>s>>t;
        NODE node;
        node.root = f;
        node.left = s;
        node.right = t;
        nodeArr[f-'0'] = node;
    }
    
    preorder('A');
    cout << "\n";
    inorder('A');
    cout << "\n";
    postorder('A');
}

'๐Ÿ’ป Algorithms > ๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€] 1932 ์ •์ˆ˜ ์‚ผ๊ฐํ˜• - ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ  (0) 2024.08.31
[๋ฐฑ์ค€] 1003 ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜ - ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ  (0) 2024.08.31
[๋ฐฑ์ค€] 11866 ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ0 - ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ  (0) 2024.08.27
[๋ฐฑ์ค€] 1181 ๋‹จ์–ด ์ •๋ ฌ - ์ •๋ ฌ  (0) 2024.08.25
[๋ฐฑ์ค€] 10814 ๋‚˜์ด์ˆœ ์ •๋ ฌ - ์ •๋ ฌ  (0) 2024.08.24
'๐Ÿ’ป Algorithms/๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] 1932 ์ •์ˆ˜ ์‚ผ๊ฐํ˜• - ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  • [๋ฐฑ์ค€] 1003 ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜ - ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  • [๋ฐฑ์ค€] 11866 ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ0 - ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ
  • [๋ฐฑ์ค€] 1181 ๋‹จ์–ด ์ •๋ ฌ - ์ •๋ ฌ
์ ๋„
์ ๋„
  • ์ ๋„
    ๋„์ 
    ์ ๋„
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (30)
      • ๐Ÿ’ป Algorithms (28)
        • ๋ฐฑ์ค€ (22)
        • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (6)
      • ๐Ÿ”Ž Deep Learning (0)
      • ๐Ÿ’ฅ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… (1)
      • ๐Ÿ•น Unity (1)
      • ๐Ÿฅ” ์ž‰ํ…… (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • Blog
    • Github
    • Velog
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
์ ๋„
[๋ฐฑ์ค€] 1991 ํŠธ๋ฆฌ ์ˆœํšŒ - ํŠธ๋ฆฌ, ์žฌ๊ท€
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”