자이의 프로그래밍
부등호 본문
큰 수와 작은 수를 구할때 0에서부터 n+1개를 1씩 커지게 하면서 벡터에 넣었고, 9에서부터 n+1개를 1씩 작아지게 하면서 벡터에 넣었다. 순열을 이용해 해결했다.
#include <queue>
#include <iostream>
#include <vector>
#include <cstring>
#include <algorithm>
using namespace std;
char arr[12];
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
//큰것부터!
vector <int> big;
vector<int> small;
for (int i = 0; i <= n; i++) {
big.push_back(9 - i);
small.push_back(i);
}
// big prev permutation small next permutation
do {
int status = 0;
for (int i = 0; i < n; i++) {
if (arr[i] == '>') {
if (big[i] < big[i + 1]) status = 1;
}
else {
if (big[i] > big[i + 1]) status = 1;
}
}
if (status == 0) {
break;
}
} while (prev_permutation(big.begin(), big.end()));
do {
int status = 0;
for (int i = 0; i < n; i++) {
if (arr[i] == '>') {
if (small[i] < small[i + 1]) status = 1;
}
else {
if (small[i] > small[i + 1]) status = 1;
}
}
if (status == 0) {
break;
}
} while (next_permutation(small.begin(), small.end()));
//big-> small
for (int i = 0; i < big.size(); i++) {
cout << big[i];
}
cout << '\n';
for (int i = 0; i < small.size(); i++) {
cout << small[i];
}
return 0;
}