안녕 세상아,

[SWEA/c++] 1208. [S/W 문제해결 기본] 1일차 - Flatten 본문

SWEA

[SWEA/c++] 1208. [S/W 문제해결 기본] 1일차 - Flatten

돈 많은 백수가 되고싶다 2024. 10. 17. 21:06

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&problemLevel=4&contestProbId=AV139KOaABgCFAYh&categoryId=AV139KOaABgCFAYh&categoryType=CODE&problemTitle=&orderBy=INQUERY_COUNT&selectCodeLang=CCPP&select-1=4&pageSize=10&pageIndex=1

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

하루 풀고 다음 문제 푸는데 멘탈 너무 털려서 며칠 헤매다가 과감하게 다음 문제로 넘어갔는데..너무 쉬어서..당황..ㅋㅋㅋ

 

문제 푸는 방법은 진짜 쉽다. 

정렬해서 가장 큰 수와 가장 작은 수 구한 다음, 가장 큰 수는 -- 해주고 가장 작은 수는 ++ 해준다. 이 과정에서 가장 작은 수와 가장 큰 수가 변할 수 있기 때문에 매번 sort 해준다. 

 

#include<iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;

int main(int argc, char** argv)
{
    int test_case;
    int T = 10;

    for (test_case = 1; test_case <= T; ++test_case)
    {
        int n;
        cin >> n;

        vector<int> v;

        for (int i = 0; i < 100; i++) {
            int x;
            cin >> x;
            v.push_back(x);
        }
        for (int i = 0; i < n; i++) {
            sort(v.begin(), v.end());
            v[99]--;
            v[0]++;
        }
        sort(v.begin(), v.end());

        cout << "#" << test_case << " " << v[99] - v[0] << endl;
    }
    return 0;//정상종료시 반드시 0을 리턴해야합니다.
}