좌우 두칸 건물의 높이 중 가장 높은 높이를 현재 건물의 높이와 비교
현재 건물이 그 보다 낮다면 continue,
현재 건물이 더 높다면 (현재 건물 높이 - 좌우 두칸 건물 높이 중 최대 높이) 를 sum에 더한다.
#include <iostream>
int heights[1000];
void init() {
for (int i = 0; i < 1000; i++) {
heights[i] = 0;
}
}
int is_good(int index) {
int right_most_high = heights[index - 1] > heights[index - 2] ? heights[index - 1] : heights[index - 2];
int left_most_high = heights[index + 1] > heights[index + 2] ? heights[index+ 1] : heights[index + 2];
if (right_most_high >= heights[index] || left_most_high >= heights[index]) {
return -1;
}
if (right_most_high > left_most_high) {
return right_most_high;
} else {
return left_most_high;
}
}
int main() {
for (int test_case = 1; test_case < 11; test_case++) {
int n = 0;
std::cin >> n;
init();
for (int i = 0; i < n; i++) {
std::cin >> heights[i];
}
int sum = 0;
for (int i = 2; i < n; i++) {
if (i > 997) {
break;
}
int res = is_good(i);
if (res != -1) {
sum += heights[i] - res;
}
}
std::cout << "#" << test_case << " " << sum << "\n";
}
return 0;
}
'PS > SWEA' 카테고리의 다른 글
SWEA 1215 : [S/W 문제해결 기본] 3일차 - 회문1 [C++] (0) | 2023.01.13 |
---|---|
SWEA 1926 : 간단한 369게임 (0) | 2022.11.17 |
SWEA 1954 : 달팽이 숫자 [C++] (0) | 2022.11.17 |
SWEA 1204 : [S/W 문제해결 기본] 1일차 - 최빈수 구하기 [C++] (0) | 2022.11.17 |
SWEA 1859 : 백만 장자 프로젝트 [C++] (0) | 2022.11.16 |