#include <stdio.h> #include <iostream> #include <string> #include <math.h> using namespace std; int num[10]; int visited[10]; char sign[9]; int signNum; string Max = "-1"; string Min = "9999999999"; int check(int idx) { if(sign[idx] == '<') { if(num[idx] < num[idx+1]) { return 1; } else { return 0; } } else if(sign[idx] == '>') { if(num[idx] > num[idx+1]) { return 1; } else { return 0; } } } void permutation(int cnt) { if(cnt == signNum+1) { for(int i = 0; i < cnt-1; i++) { if(check(i) == 0) { return; } } string val; for(int i = 0; i < cnt; i++) { val += to_string(num[i]); } if(val > Max) { Max = val; } if(val < Min) { Min = val; } return; } for(int i = 0; i <= 9; i++) { if(visited[i] == 0) { num[cnt] = i; visited[i] = 1; permutation(cnt+1); visited[i] = 0; } } } int main(void) { // freopen("B2529_input.txt", "r", stdin); scanf("%d", &signNum); for(int i = 0; i < signNum; i++) { scanf(" %c", &sign[i]); } permutation(0); cout << Max << endl; cout << Min << endl; return 0; } | cs |
'Baekjoon > BruteForce' 카테고리의 다른 글
[백준 15686] 치킨배달 (조합) (C/C++) (0) | 2019.11.18 |
---|---|
[백준 2309] 일곱 난쟁이 (조합) (C/C++) (1) | 2019.11.18 |
[백준 15666] N과 M(12) (중복조합) (C/C++) (0) | 2019.11.18 |
[백준 15665] N과 M(11) (중복순열) (C/C++) (0) | 2019.11.18 |
[백준 15664] N과 M(10) (조합) (C/C++) (0) | 2019.11.18 |