APS/SWEA
1231. [S/W 문제해결 기본] 9일차 - 중위순회 C++
문래동까마귀
2021. 11. 20. 01:38
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV140YnqAIECFAYD
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
#include <string>
using namespace std;
int main() {
//int test_case;
//int T;
//cin >> T;
vector<pair<int, char>>vec;
vector<int> sun;
for (int test_case = 1; test_case <= 10; test_case++) {
int n;
cin >> n;
vec.clear();
sun.clear();
int num;
char ch;
int be_num;
int next_num;
for (int i = 0; i < n; i++) {
cin >> num;
cin >> ch;
vec.push_back(make_pair(num, ch));
if (i == 0) sun.push_back(num);
int point;
if (i < (n - 1) / 2) {
cin >> be_num >> next_num;
for (int x = 0; x < sun.size(); x++) {
if (sun[x] == num) point = x;
}
if (point - 1 < 0)
sun.insert(sun.begin(), be_num);
else
sun.insert(sun.begin() + point, be_num);
sun.insert(sun.begin() + point + 2, next_num);
}
if ((n - 1) % 2 == 1 && i == (n - 1) / 2) {
cin >> be_num;
for (int x = 0; x < sun.size(); x++) {
if (sun[x] == num) point = x;
}
if (point - 1 < 0)
sun.insert(sun.begin(), be_num);
else
sun.insert(sun.begin() + point, be_num);
}
}
cout << "#" << test_case << " ";
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (sun[i] == vec[j].first)
cout << vec[j].second;
}
}
cout << endl;
}
return 0;
}