
문제
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
풀이
DP라기엔 점화식도 없고 구현에 가깝다고 생각한다.
그냥 해당 빌딩을 기준으로 양옆 +-2의 MAX를 찾아서 뺴주기만 해도 금방 나오는 문제다.
소스 코드
#include<iostream>
#include <algorithm>
using namespace std;
int main(int argc, char** argv)
{
int test_case, T = 10;
for(test_case = 1; test_case <= T; ++test_case)
{
int N, sum = 0;
int arr[1000];
cin >> N;
for (int i = 0; i < N; i++) {
cin >> arr[i];
}
for (int i = 2; i < N - 2; i++) {
int left = max(arr[i - 2], arr[i - 1]);
int right = max(arr[i + 2], arr[i + 1]);
int check = max(right, left);
if(arr[i] > check)
sum += arr[i] - check;
}
cout << "#" << test_case << " " << sum << '\n';
}
return 0;
}'Programming Practice > SWEA' 카테고리의 다른 글
| [SWEA] 1249. 보급로 - D4 (0) | 2022.05.10 |
|---|---|
| [SWEA] 1954. 달팽이 - D2 (0) | 2022.05.10 |
| [SWEA] 1244. 최대 상금 - D3 (0) | 2022.05.03 |
| [SWEA] 1859. 백만장자 프로젝트 - D2 (0) | 2022.05.02 |
| [SWEA] 1204. 최빈수 구하기 - D2 (0) | 2022.05.02 |