250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(SWEA c++)1208. [S/W 문제해결 기본] 1일차 - Flatten 본문
728x90
반응형
test case는 10으로 정해져 있으므로 for문을 10번 반복한다.
vector를 이용하여 문제를 해결.
가로의 길이는 100으로 고정이므로 100개의 상자 높이를 받아온다.
평탄화 작업을 수행.
상자의 높이가 담겨져 있는 v 벡터를 계속해서 sort를 한다.
오름차순 정렬이 되기 때문에 v[0]은 min 값, v[99]는 max 값이 담겨져 있다.
만약 두 값의 차이가 1 이하이면 평탄화 작업이 완료된 것이므로 빠져나오도록 한다.
아니라면 v[0]++, v[99]--를 해주어 덤프 작업을 수행.
마지막에는 sort를 한번 더 해주고, v.back() - v.front()를 출력하여 답을 출력하면 된다.
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main(void)
{
for(int i = 1; i <= 10; i++)
{
int t;
vector<int> v;
cin >> t;
for(int j = 0; j < 100; j++)
{
int tmp;
cin >> tmp;
v.push_back(tmp);
}
for(int j = 0; j < t; j++)
{
sort(v.begin(), v.end());
if(v.back() - v.front() <= 1)
break;
v[0]++;
v[99]--;
}
sort(v.begin(), v.end());
cout << "#" << i << " " << v.back() - v.front() << endl;
}
return 0;
}
728x90
반응형
'SW Expert Academy' 카테고리의 다른 글
(SWEA c++)1213. [S/W 문제해결 기본] 3일차 - String (0) | 2020.10.07 |
---|---|
(SWEA c++)1209. [S/W 문제해결 기본] 2일차 - Sum (0) | 2020.10.07 |
(SWEA c++)1206. [S/W 문제해결 기본] 1일차 - View (0) | 2020.10.06 |
(SWEA c++)5603. [Professional] 건초더미 (0) | 2020.10.05 |
(SWEA c++)5607. [Professional] 조합 (0) | 2020.10.05 |