๋ฌธ์
์ฝ๋
#include <iostream>
#include <vector>
#include <algorithm>
#define ll long long
using namespace std;
vector<ll> v;
void backtracking(string s){
if(s > "9876543210") return;
string temp = s;
reverse(temp.begin(), temp.end());
v.push_back(stoll(temp));
for(int i=s.back() - '0' + 1; i<=9; i++){
string num = to_string(i);
backtracking(s + num);
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int n; cin>>n;
for(int i=0; i<=9; i++){
string num = to_string(i);
backtracking(num);
}
sort(v.begin(), v.end());
if(n>=v.size()) cout<<-1;
else cout<<v[n];
}
ํ์ด
- 0, 01, 012, 0123...., 0123456789, 012345679, 01234568, 012345689 ... ์์ผ๋ก ์ฆ๊ฐํ๋ ์์ผ๋ก backtracking์ ํ์ํฉ๋๋ค.
- ์ number๋ฅผ ๊ฑฐ๊พธ๋ก ์ฆ ์ญ์์ผ๋ก ๋ฐ๊พธ๋ฉด ๊ฐ์ํ๋ ์๊ฐ ๋๊ธฐ์ reverse ์์ผ์ vector์ ์ ์ฅํฉ๋๋ค.
- ๊ฐ์ฅ ํฐ ๊ฐ์ํ๋ ์๋ 9876543210 ์ผ๋ก int๊ฐ์ ๋๊ธฐ ๋๋ฌธ์ long long์ผ๋ก vector๋ฅผ ์ ์ธํด์ค๋๋ค.
- ๋ง์ง๋ง์ ์ ๋ ฌ ํ ์ฐพ๊ณ ์ ํ๋ N์ V[N]์ผ๋ก ์ถ๋ ฅํ๋ฉด ๋ฉ๋๋ค.
์ด v[0] = 0, .... v[1022] = 9876543210์ด ๋ฉ๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 25644๋ฒ - ์ต๋ ์์น (0) | 2022.09.28 |
---|---|
[๋ฐฑ์ค,c++] 1309๋ฒ - ๋๋ฌผ์ (0) | 2022.09.27 |
[๋ฐฑ์ค,c++] 12782๋ฒ - ๋นํธ ์ฐ์ ์ง์ (0) | 2022.09.27 |
[๋ฐฑ์ค,c++] 16935๋ฒ - ๋ฐฐ์ด ๋๋ฆฌ๊ธฐ 3 (0) | 2022.09.22 |
[๋ฐฑ์ค,c++] 10703๋ฒ - ์ ์ฑ (0) | 2022.09.21 |
[๋ฐฑ์ค,c++] 22860๋ฒ - ํด๋ ์ ๋ฆฌ (small) (0) | 2022.09.21 |
๋๊ธ