Algorithm 🧑🏻💻/백준(BOJ)
[백준,c++] 18511번 - 큰 수 구성하기
dkswnkk
2022. 4. 3. 23:38
문제
18511번: 큰 수 구성하기
첫째 줄에 N, K의 원소의 개수가 공백을 기준으로 구분되어 자연수로 주어진다. (10 ≤ N ≤ 100,000,000, 1 ≤ K의 원소의 개수 ≤ 3) 둘째 줄에 K의 원소들이 공백을 기준으로 구분되어 주어진다. 각
www.acmicpc.net
코드
#include <iostream>
#include <vector>
#define ll long long int
using namespace std;
ll N,K,ans;
vector<char>v;
void find(vector<char>v, string now){
if(!now.empty()){
if(stoll(now)<=N) ans = max(ans, stoll(now));
else return;
}
for(int i=0; i<K; i++){
now+=v[i];
find(v, now);
now.pop_back();
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
cin>>N>>K;
for(int i=0; i<K; i++){
char inp; cin>>inp;
v.push_back(inp);
}
find(v, "");
cout<<ans;
}
풀이
브루트포스 문제였습니다. 직접 모든 경우의 수를 다 찾아서 최댓값을 찾아 주었습니다.