SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
www.swexpertacademy.com
재귀 함수를 이용해 heights 배열을 루프 돌면서 최대 값과 최소 값을 고르고 덤프를 수행한다.
주어진 횟수만큼 수행했다면 heights 배열의 최대 값과 최소 값의 차를 리턴한다.
#include <iostream>
#include <ios>
#include <algorithm>
using namespace std;
int dumpCnt, heights[100];
int minVal, maxVal, minIdx, maxIdx, cnt;
int getResult(int cnt);
int main() {
cin.tie(0); ios::sync_with_stdio(0);
for (int tc = 1; tc <= 10; tc++) {
cnt = 1;
cin >> dumpCnt;
for (int i = 0; i < 100; i++) cin >> heights[i];
cout << '#' << tc << ' ' << getResult(cnt) << "\n";
}
return 0;
}
int getResult(int cnt) {
minVal = 2e9, maxVal = -2e9;
for (int i = 0; i < 100; i++) {
minVal = min(minVal, heights[i]);
if (minVal == heights[i]) minIdx = i;
maxVal = max(maxVal, heights[i]);
if (maxVal == heights[i]) maxIdx = i;
}
heights[maxIdx]--; heights[minIdx]++;
if (cnt == dumpCnt) {
minVal = 2e9, maxVal = -2e9;
for (int i = 0; i < 100; i++) {
minVal = min(minVal, heights[i]);
maxVal = max(maxVal, heights[i]);
}
return maxVal - minVal;
}
getResult(cnt + 1);
}
'알고리즘 > SWEA' 카테고리의 다른 글
[SWEA] 1209. [S/W 문제해결 기본] 2일차 - Sum (0) | 2019.04.29 |
---|---|
SW 문제해결 기본 - Array 2 (0) | 2019.04.29 |
[SWEA] 1206. [S/W 문제해결 기본] 1일차 - View (0) | 2019.04.27 |
SW 문제해결 기본 - Array 1 (0) | 2019.04.27 |
[SWEA] 1289. 원재의 메모리 복구하기 (0) | 2019.04.27 |
댓글