Algorithm/SWEA

[ SWEA ] 1206. View D3 C++

_cpdm_ 2022. 8. 30. 11:16
반응형


문제

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

아이디어

기준이 되는 건물의 위치를 Y라고 가정하면,
Y-1, Y-2, Y+1, Y+2 위치 중 가장 높은 건물의 높이보다 Y위치의 건물이 더 높을 때
그 차이를 세대수의 합에 더해준다.

코드

#include <iostream>
#include <algorithm>
using namespace std;

int main(void) {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
    
	for (int t = 1; t <= 10; ++t) {
		int N;
		cin >> N;
		int* arr = new int[N];
		for (int i = 0; i < N; ++i) {
			cin >> arr[i];
		}
		int answer(0);
		for (int i = 2; i < N - 2; ++i) {
			int max_height = max(arr[i - 2], max(arr[i - 1], max(arr[i + 1], arr[i + 2])));
			if (arr[i] - max_height > 0) {
				answer += arr[i] - max_height;
			}
		}
		cout << '#' << t << ' ' << answer << '\n';
		delete[] arr;
	}

	return 0;
}

 

 

cpdm

 

choppadontbiteme.tistory.com

 

반응형