테스트 1
입력값 〉[1, 3, 2], ["diamond", "diamond", "diamond", "iron", "iron", "diamond", "iron", "stone"]
기댓값 〉12
실행 결과 〉테스트를 통과하였습니다.

테스트 2
입력값 〉[0, 1, 1], ["diamond", "diamond", "diamond", "diamond", "diamond", "iron", "iron", "iron", "iron", "iron", "diamond"]
기댓값 〉50
실행 결과 〉실행한 결괏값 30이 기댓값 50과 다릅니다.
#include <string>
#include <vector>
#include <algorithm>

using namespace std;
int mine_str_int(string mineral){
    if(mineral == "diamond"){
        return 100;
    }
    else if(mineral == "iron"){
        return 10;
    }
    else if(mineral == "stone"){
        return 1;
    }
    return 0; // 예외 처리를 위해 기본값 추가
}

int solution(vector<int> picks, vector<string> minerals) {
    int answer = 0;
    vector<int> minerals2;
    int len = minerals.size();
    int flag = 0;
    int mineral = 0;
    
    //광맥의 정렬
    //미네랄을 5개 단위로 잘라서 각 광물의 종류를 저장    
    //세자리수 숫자로 저장
    //100자리에 다이아, 10자리에 철, 1자리에 돌개수 저장
    
    for (int i = 0; i<len; i++){
        mineral += mine_str_int(minerals.at(i));
        flag++;
        if(flag == 5){
            minerals2.push_back(mineral);
            flag = 0;
            mineral = 0;
        }
    }
    //나머지 저장
    if(flag>0){
        minerals2.push_back(mineral);
        flag = 0;
        mineral = 0;
    }
        
    //광맥과 곡괭이 개수를 비교
    int stone_pick = picks.at(2);
    int iron_pick = picks.at(1);
    int dia_pick = picks.at(0);
    int all_pick = stone_pick+iron_pick+dia_pick;
    int i = 0;
    
    if(all_pick >= minerals2.size()){
        //곡괭이가 더 많거나 같을 경우(모든 광맥을 캐야함)
        //다이아곡괭이부터 써서 가장 비싼 광맥부터 채굴
        //가장 비싼광맥부터 정렬
        sort(minerals2.rbegin(), minerals2.rend());
        // 다이아 곡괭이 사용
        while (dia_pick > 0 && i < minerals2.size()) {
            // 다이아 곡괭이로 채굴
            answer += (minerals2[i] / 100);
            answer += ((minerals2[i] % 100) / 10);
            answer += (minerals2[i] % 10);
            i++;
            dia_pick--;
        }

        // 철 곡괭이 사용
        while (iron_pick > 0 && i < minerals2.size()) {
            answer += 5 * (minerals2[i] / 100);
            answer += ((minerals2[i] % 100) / 10);
            answer += (minerals2[i] % 10);
            i++;
            iron_pick--;
        }

        // 돌 곡괭이 사용
        while (stone_pick > 0 && i < minerals2.size()) {
            answer += 25 * (minerals2[i] / 100);
            answer += 5 * ((minerals2[i] % 100) / 10);
            answer += (minerals2[i] % 10);
            i++;
            stone_pick--;
        }
    }
    else{
        //광맥이 더 많을 경우 (모든 곡괭이를 써야함)
        //돌곡괭이부터 가장 싼 광맥부터 채굴
        //가장 싼광맥부터 정렬
        sort(minerals2.begin(), minerals2.end());
        
        // 돌 곡괭이 사용
        while (stone_pick > 0 && i < minerals2.size()) {
            answer += 25 * (minerals2[i] / 100);
            answer += 5 * ((minerals2[i] % 100) / 10);
            answer += (minerals2[i] % 10);
            i++;
            stone_pick--;
        }
        
        // 철 곡괭이 사용
        while (iron_pick > 0 && i < minerals2.size()) {
            answer += 5 * (minerals2[i] / 100);
            answer += ((minerals2[i] % 100) / 10);
            answer += (minerals2[i] % 10);
            i++;
            iron_pick--;
        }
        // 다이아 곡괭이 사용
        while (dia_pick > 0 && i < minerals2.size()) {
            // 다이아 곡괭이로 채굴
            answer += (minerals2[i] / 100);
            answer += ((minerals2[i] % 100) / 10);
            answer += (minerals2[i] % 10);
            i++;
            dia_pick--;
        }
    }
    
    
    return answer;
}