PS

SWEA 1206 - View

728x90

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh&categoryId=AV134DPqAA8CFAYh&categoryType=CODE&&&

 

SW Expert Academy

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

swexpertacademy.com

 

 

- c++

 

#include <cstring>
#include <iostream>
 
#define endl "\n"
 
using namespace std;
 
int cnt, n;
int arr[1001];
 
int main(int argc, char** argv) {
    cin.tie(0); ios_base::sync_with_stdio(0);
    int test_case;
    
    for(test_case = 1; test_case <= 10++test_case) {
        cnt = 0;
        memset(arr, 0sizeof(arr));
 
        cin >> n;
        for (int i = 0; i < n; ++i) cin >> arr[i];
        
        for (int i = 0; i < n; ++i) {
            if (arr[i] == 0continue;
            
            int left = -1, right = -1;
            // left
            for (int j = i - 1; j >= i - 2--j) {
                if (arr[j] >= arr[i]) {
                    left = -1;
                    break;
                }
                left = max(left, arr[j]);
            }
            
            // right
            for (int j = i + 1; j <= i + 2++j) {
                if (arr[j] >= arr[i]) {
                    right = -1;
                    break;    
                }
                right = max(right, arr[j]);
            }
            
            if (left == -1 || right == -1continue;
            cnt = cnt + min(arr[i] - left, arr[i] - right);
        }
        cout << "#" << test_case << " " << cnt << endl;
    }
    return 0;
}
cs

 

 

 

 

백준 14719 빗물

https://www.acmicpc.net/problem/14719

 

위 문제와 유사한듯 하다

728x90