λ¬Έμ
1038λ²: κ°μνλ μ
μμ΄ μλ μ μ Xμ μλ¦Ώμκ° κ°μ₯ ν° μλ¦ΏμλΆν° μμ μλ¦ΏμκΉμ§ κ°μνλ€λ©΄, κ·Έ μλ₯Ό κ°μνλ μλΌκ³ νλ€. μλ₯Ό λ€μ΄, 321κ³Ό 950μ κ°μνλ μμ§λ§, 322μ 958μ μλλ€. Nλ²μ§Έ κ°μνλ μλ₯Ό
www.acmicpc.net
μ½λ
#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 |
λκΈ