728x90
반응형
서로 다른 3글자라서 조합을 nCm 해야하나? 했는데 결국 순서가 정해질테고 그냥 제일 상위몇개만 하면되었다.. 어렵다
#include<vector>
#include <iostream>
#include<algorithm>
#include<string>
using namespace std;
//숫자 배열을 문자열로
string turn(vector<int>arr){
string tmp="";
for(int i=0;i<arr.size();i++){
tmp+=(arr[i]+'0');
}
return tmp;
}
bool cal(vector<int>tmp,vector<char>arr){
for(int i=0;i<tmp.size()-1;i++){
int a=tmp[i];
char c=arr[i];
int b=tmp[i+1];
if(c=='<'){
if(!(a<b))return false;
}
if(c=='>'){
if(!(a>b))return false;
}
}
return true;
}
int main()
{
int n;
cin>>n;
vector<char>arr(n);
for(int i=0;i<n;i++){
cin>>arr[i];
}
//조합을 해야하지 않을까? 했는데 그냥 상관업나
vector<int>mins(n+1);
vector<int>maxs(n+1);
for(int i=0;i<n+1;i++){
mins[i]=i;
maxs[i]=9-i;
}
vector<string>ans(2);
do{
if(cal(maxs,arr)){
ans[0]=turn(maxs);
break;
}
}while(prev_permutation(maxs.begin(),maxs.end()));
do{
if(cal(mins,arr)){
ans[1]=turn(mins);
break;
}
}while(next_permutation(mins.begin(),mins.end()));
for(int i=0;i<2;i++){
cout<<ans[i]<<'\n';
}
return 0;
}
728x90
반응형
'하루 1문제 챌린지 > Silver1' 카테고리의 다른 글
백준 2615번 오목(C++)🚩 (0) | 2024.03.19 |
---|---|
백준 1080번 행렬(C++)🚩🚩 (0) | 2024.03.01 |
백준 2841번 외계인의 기타연주(C++) (1) | 2024.02.16 |
백준 15903번 카드합체놀이 (C++) (1) | 2024.02.16 |
백준 16206번 롤케이크(C++)🚩 (0) | 2024.02.13 |