백준 문제풀이/String
[C++] 백준 문제풀이 (String) 2992번 크면서 작은 수
코딩준우
2023. 6. 29. 08:05
https://www.acmicpc.net/problem/2992
2992번: 크면서 작은 수
정수 X가 주어졌을 때, X와 구성이 같으면서 X보다 큰 수 중 가장 작은 수를 출력한다. 수의 구성이 같다는 말은, 수를 이루고 있는 각 자리수가 같다는 뜻이다. 예를 들어, 123과 321은 수의 구성이
www.acmicpc.net
//[C++] 백준 문제풀이 (String)
#include <bits/stdc++.h>
std::string s;
std::vector<std::string> ret;
std::string str;
bool used[6];
void dfs(){
if (str.length() == s.length()){
if (str > s){
ret.push_back(str);
}
return;
}
for (int i = 0; i < s.length(); ++i){
if (used[i]) continue;
used[i] = true;
str += s[i];
dfs();
used[i] = false;
str.pop_back();
}
}
int main(){
std::ios_base::sync_with_stdio(false);
std::cin.tie(nullptr);
std::cin >> s;
dfs();
if (ret.size() == 0){
std::cout << 0 << "\n";
}
else {
std::cout << *std::min_element(ret.begin(), ret.end()) << "\n";
}
return 0;
}