본문 바로가기
Programming/Algorithm

swe 1206 View

by OKOK 2018. 3. 28.


 1. 나의 설계가 확실한지? 더 좋은 방법이나 더 간편한 방법은 없는지 검토하는 시간을 갖습니다. 예외는 없는지 확실하게 합니다. 그러기 위해서 처음과 끝을 처리해봅니다.


예제뿐만 아니라, 문제를 꼼꼼히 읽어보고, 뒤에 받을 새로운 변수에 대해서도 적용해보도록 합니다. 예외가 있을 것 같은 것은 확실히 찾아내도록 합니다.


 /*

11:00 문제 해결 1일차 풀이하도록 하겠습니다.

40분컷하도록 하겠습니다.


조망권 확보 됬는지 확인하기


1이 있으면 그곳에 좌우로 2칸씩 확인해서 0이면 오케이입니다.


예제를 보면


0 0 3 5 2 4 9 0 6 4 0 6 0 0


입니다. 

다 그릴 필요가 없이 일단 저것을 다 넣은 다음에


인덱스 하나씩 옮겨가면서 양 옆의 빌등의 높이를 받아서 처리하면 됩니다. 

*/


#include <iostream>

#include <algorithm>

using namespace std;


#define SIZE 1005 // 1005

int map[SIZE];

int ans;

int N;

int leftMax, rightMax;


void problemIn() {

cin >> N;

for (int i = 0; i < N; i++) {

cin >> map[i];

}

}


void init() {

ans = 0;

}

void solve() {


for (int i = 2; i < N-2; i++) {

leftMax = max(map[i - 1], map[i - 2]);

rightMax = max(map[i + 1], map[i + 2]);

if ((map[i] - leftMax) > 0 && (map[i] - rightMax) > 0) {

ans += map[i] - max(leftMax, rightMax);

}

}

}


int main() {

for (int tc = 1; tc <= 10; tc++) {

problemIn();

solve();

cout << "#" << tc << " " << ans << endl;

init();

}

return 0;

}