https://programmers.co.kr/learn/courses/30/lessons/60062
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(int n, vector<int> weak, vector<int> dist) {
int answer = 2e9;
sort(dist.begin(), dist.end());
for (int k = 0; k < weak.size(); k++) {
int tmp = weak[0];
for (int i = 0; i < weak.size() - 1; i++) {
weak[i] = weak[i + 1];
}
weak[weak.size() - 1] = tmp + n;
do {
int index = 0;
int cur = 0;
for (int ii = 0; ii < weak.size() && index < dist.size(); index++) {
cur = dist[index] + weak[ii];
while (ii <weak.size() && cur >= weak[ii]) {
ii++;
}
}
if(cur >= weak[weak.size()-1])
answer = min(answer, index);
} while (next_permutation(dist.begin(), dist.end()));
}
if (answer == 2e9) answer = -1;
return answer;
}
'프로그래머스' 카테고리의 다른 글
괄호 회전하기 C++ (0) | 2022.03.02 |
---|---|
2개 이하로 다른 비트 C++ (0) | 2022.03.02 |
신고 결과 받기 C++ (0) | 2022.02.19 |
k진수에서 소수 개수 구하기 C++ (0) | 2022.02.19 |
양궁대회 C++ (0) | 2022.02.19 |