[백준] 1174번. 줄어드는 수

leeeha·2024년 6월 21일
0

백준

목록 보기
173/186
post-thumbnail

문제

https://www.acmicpc.net/problem/1174


풀이

https://velog.io/@jxlhe46/백준-1038번.-감소하는-수

위의 문제와 거의 동일하다. 0번째가 아닌, 1번째 감소하는 수부터 구한다는 것만 다르다.

#include <iostream>
#include <string> 
#include <cstring>
#include <sstream>
#include <algorithm>
#include <vector>
#include <cmath>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <unordered_set>
#include <unordered_map>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;

int n; 
vector<ll> arr; 

void dfs(ll num, int digit){
	if(digit > 10) return; // 최대 9876543210

	arr.push_back(num);

	for(int i = 0; i < 10; i++){
		if(num % 10 > i){
			dfs(num * 10 + i, digit + 1);
		}
	}
}

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);

	cin >> n; 

	for(int i = 0; i < 10; i++){
		dfs(i, 1);
	}

	sort(arr.begin(), arr.end());

	// 1번째 -> arr[0]
	// ...
	// n번째 -> arr[n - 1] (size: n)
	
	if(n > arr.size()){
		cout << "-1";
	}else{
		cout << arr[n - 1];
	}
	
	return 0;
}
profile
습관이 될 때까지 📝

0개의 댓글