반응형
https://www.acmicpc.net/problem/1038
문제 해결 알고리즘
string으로 숫자를 입력 받아 앞자리 수와 비교 한 후에 long long으로 배열에 입력해 백트래킹이 끝나면 배열을 정렬해 그에 해당하는 감소하는 숫자를 출력한다.
소스 코드
#include <bits/stdc++.h>
using namespace std;
int N;
vector<long long> v;
void dfs(string str){
if(str != "") {
long long n = stoll(str);
v.push_back(n);
}
for(int i=0;i<10;i++){
string num = to_string(i);
if(i > str[0]-'0') dfs(num+str);
}
}
int main(){
cin >> N;
dfs("");
sort(v.begin(),v.end());
if(N >= v.size()) cout << -1;
else cout << v[N];
}
반응형
'알고리즘 문제 해결 > BOJ' 카테고리의 다른 글
[BFS] BOJ 6593 상범 빌딩 (0) | 2022.01.24 |
---|---|
[BFS] BOJ 2589 보물섬 (0) | 2022.01.21 |
[분할 정복] BOJ 17829 222-풀링 (0) | 2022.01.15 |
[그리디] BOJ 16496 큰 수 만들기 (0) | 2022.01.12 |
[BFS] BOJ 17267 상남자 (0) | 2022.01.08 |