본문 바로가기
SWE/코테

[SW Expert Academy] '3' #1208 Flatten *

by S나라라2 2019. 3. 7.
반응형

후,,, Xcode사용법 몰라서 시간 다 쓴다,,, 후,, 화난당 ㅋㅋㅋㅋ

오늘 Xcode tool 사용법 익혀야겠다 ㅠ


문제 쉬움

다만 다른 사람들은 어떻게 접근해서 효율적으로 풀었는지 궁금함


// #1208 Flatten

#include < iostream >

using namespace std;

int main(void) {
    
    for(int tc=1; tc<=10; tc++){
        
        int arr[101]={0,};  // 각 상자 높이의 개수
        int dump =0;
        int answer =0;
        
        int min=102,max=1;
        
        // 입력
        cin>>dump;
        for(int i=0; i<100; i++){
            int temp;
            cin>>temp;
            arr[temp]++;
            
            if(temp < min) min = temp;
            if(temp > max) max = temp;
        }
        
        // 연산
        int exe_dump =0;
        int gap = max-min;
        while( max > (min+1) ){ // 평준화 끝
            if( exe_dump > dump ){
                answer = gap+1;
                break;
            }
            
            int min_gap;
            if(arr[min] < arr[max]) min_gap = arr[min];
            else min_gap = arr[max];
            
            arr[min] -= min_gap;
            arr[min+1] += min_gap;
            arr[max] -= min_gap;
            arr[max-1] += min_gap;
            
            if(arr[min]==0) min++;
            if(arr[max]==0) max--;
            
            exe_dump += min_gap;
            gap = max-min;
        }
        
        cout << '#' << tc << ' ' << answer << endl;
    }
    return 0;
}
반응형