입력)
1이상 100이하인 100개의 height이 주어진다.
덤프 횟수는 1이상 1000이하로 주어진다.
총 10개의 테스트 케이스가 주어지며,
[ 덤프 횟수 + 100개의 높이 ] 형식으로 들어온다.
출력)
#부호 최고점 - 처저점의 높이 차
입, 출력 분석)
width가 100이므로 배열의 크기도 100이다.
예시 분석)
(생략)
핵심)
최고점과 최저점을 빠르게 찾기 위해
height가 저장된 배열과 max값, min값의 index의 개념을 잘 알면 된다.
실수)
printf인데 scanf 로 적어서 출력이 안 되는 황당한 실수를 했다.
구현)
#include<stdio.h>
using namespace std;
int main(int argc, char** argv) {
int test_case;
for (test_case = 1; test_case <= 10; ++test_case) {
int heights[100] = {0,};
int dump_cnt = 0, diff = 0;
int maxIdx = 0, minIdx = 0;
scanf("%d", &dump_cnt);
for (int w = 0; w < 100; w++){
scanf("%d", &heights[w]);
if(heights[maxIdx] < heights[w]) maxIdx = w;
if(heights[minIdx] > heights[w]) minIdx = w;
}
for (int i = 0; i < dump_cnt; i++){
--heights[maxIdx];
++heights[minIdx];
for (int w = 0; w < 100; w++) {
if (heights[maxIdx] < heights[w]) maxIdx = w;
if (heights[minIdx] > heights[w]) minIdx = w;
}
}
diff = heights[maxIdx] - heights[minIdx];
printf("#%d %d\n", test_case, diff);
}
return 0;//정상종료시 반드시 0을 리턴해야합니다.
}
'Algorithm&Problem > [Problems] SWEA' 카테고리의 다른 글
[D4] 1210.Ladder1 (0) | 2020.08.18 |
---|---|
[D3] 1206. View (0) | 2020.08.08 |
[D2] 1204. 최빈수 구하기 (0) | 2020.07.22 |
[D2] 1859. 백만 장자 프로젝트 (0) | 2020.07.21 |
[D1] 2072. 홀수만 더하기 (0) | 2020.07.21 |