리뷰
어떤 순서로 던전을 방문해야 가장 많이 방문할 수 있는지 순서를 섞어봐야한다.
던전이 3개라면, 벡터에 0, 1, 2를 넣고 모든 경우에 방문한 던전개수를 세보며 순열을 돌려서 풀 수 있었다.
"맞았습니다" 코드
#include <vector>
#include <algorithm>
using namespace std;
int solution(int k, vector<vector<int>> dungeons) {
int answer = -1;
int dungeons_cnt = dungeons.size();
vector<int> permu_v;
for(int i = 0; i < dungeons_cnt; i++) permu_v.push_back(i);
do{
int temp_k = k, cnt = 0;
for(int i = 0; i < dungeons_cnt ; i++){
int turn = permu_v[i];
if(temp_k < dungeons[turn][0]) {
break;
}else{
temp_k -= dungeons[turn][1];
cnt++;
}
}
answer = max(answer, cnt);
}while(next_permutation(permu_v.begin(), permu_v.end()));
return answer;
}
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 줄서는방법 c++ (0) | 2022.06.11 |
---|---|
[프로그래머스] 2 x n 타일링 c++ (0) | 2022.05.31 |
[프로그래머스] 괄호 회전하기 c++ (0) | 2022.05.28 |
[프로그래머스] 압축 c++ (0) | 2022.05.27 |
[프로그래머스] 크레인 인형뽑기 c++ (0) | 2022.05.26 |