https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh&
#문제 해결 방법
앞 뒤로 두칸은 0으로 채워지기 때문에
전체 순회를 하면서 현재칸과 앞뒤 +- 2칸과의 차이가 0 이상이라면 이 차이만큼
결과값에 더해주면 된다.
#전체 코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
for (int i = 1; i <= 10; i++) {
int N;
cin >> N;
vector<int> buildings(N);
for (int j = 0; j < N; j++) {
cin >> buildings[j];
}
int count = 0;
for (int k = 2; k < N - 2; k++) {
int left1 = buildings[k] - buildings[k - 1];
int left2 = buildings[k] - buildings[k - 2];
int right1 = buildings[k] - buildings[k + 1];
int right2 = buildings[k] - buildings[k + 2];
if (left1 > 0 && left2 > 0 && right1 > 0 && right2 > 0) {
int minView = min(min(left1, left2), min(right1, right2));
count += minView;
}
}
cout << count << '\n';
}
return 0;
}
'[SW Expert Academy]' 카테고리의 다른 글
SW Expert Academy 1267. [S/W 문제해결 응용] 10일차 - 작업순서[C++] (0) | 2024.05.15 |
---|---|
SW Expert Academy 1224. [S/W 문제해결 기본] 6일차 - 계산기3[C++] (0) | 2024.04.17 |
SW Expert Academy 1219. [S/W 문제해결 기본] 4일차 - 길찾기[C++] (0) | 2024.04.06 |
SW Expert Academy 1218.[S/W 문제해결 기본] 4일차 - 괄호 짝짓기[C++] (0) | 2024.04.05 |
SW Expert Academy [S/W 문제해결 기본] 3일차 - 최적 경로 [C++] (0) | 2024.04.03 |