SWEA-D3-1206 View

Seok·2020년 12월 6일
0

Algorithm

목록 보기
15/60

필요한 지식

  1. 라인스위핑

접근

  1. 좌 2칸 중 최대 높이(lt), 우 2칸 중 최대 높이(rt)를 구한 후 현재 위치한 빌딩의 높이와 비교한다.
  2. lt 와 rt의 최대값이 현재빌딩의 높이보다 낮다면 그 차이값이 조망권을 획득한 세대 수 가 된다.

코드(C++)

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

int main() {
	ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	for (int t = 1; t <= 10; t++) {
		vector<int> v;
		int n, ans = 0; cin >> n;
		for (int i = 0; i < n; i++) {
			int x; cin >> x;  v.push_back(x);
		}

		for (int i = 2; i < n - 2; i++) {
			int rt = 0, lt = 0;
			lt = max(v[i - 1], v[i - 2]);
			rt = max(v[i + 1], v[i + 2]);
			if (v[i] > lt&& v[i] > rt) ans += v[i] - max(rt, lt);
		}
		cout << "#" << t << " " << ans << "\n";
	}
	return 0;
}

image

profile
🦉🦉🦉🦉🦉

0개의 댓글