https://softeer.ai/practice/info.do?eventIdx=1&psProblemId=581&sw_prbl_sbms_sn=16912

 

Softeer

제한시간 : C/C++/Java/Python(2초) | 메모리 제한 : 256MB 여름 휴가를 떠나기 위해 용돈이 필요했던 광우는 H택배 상하차 아르바이트를 지원 했다. 광우는 평소에 운동을 하지않아 힘쓰는 데에 자신이

softeer.ai

 

[난이도] level3
[유형] 시뮬레이션

[풀이]
레일의 최대 개수가 N밖에 안되므로 next_permutation을 이용하면 모든 레일 순서를 구할 수 있습니다.
각 순서마다 문제의 조건에 맞게 시뮬레이션 하면 들어야 하는 무게의 최솟값을 구할 수 있습니다.

 

#include <cstdio>
#include <algorithm>
using namespace std;
int N,M,K,a[10],ans=9e8;
int main(){
    scanf("%d%d%d",&N,&M,&K);
    for(int i=0;i<N;i++) scanf("%d",&a[i]);
    sort(a,a+N);
    do{
        int cur=0, work=0;
        for(int i=0;i<K;i++){
            int r = M;
            while(1){
                r-=a[cur];
                if(r<0) break;
                work+=a[cur++];
                cur%=N;
            }
        }
        ans=min(ans,work);
    }while(next_permutation(a,a+N));
    printf("%d",ans);
}


https://github.com/has2/Problem-Solving/blob/master/softeer/level3/택배_마스터_광우.cpp

+ Recent posts