danbibibi
article thumbnail

문제

문제 바로가기> BOJ 2304번: 창고 다각형

 

2304번: 창고 다각형

첫 줄에는 기둥의 개수를 나타내는 정수 N이 주어진다. N은 1 이상 1,000 이하이다. 그 다음 N 개의 줄에는 각 줄에 각 기둥의 왼쪽 면의 위치를 나타내는 정수 L과 높이를 나타내는 정수 H가 한 개의

www.acmicpc.net

 

풀이

L이 최대 1000이므로, brute-force 방식으로 문제를 쉽게 해결할 수 있다 !

#include<iostream>
#include<algorithm>
#define MAX 1001
using namespace std;

int N, L, H;
int pillars[MAX];
int maxVal, maxIdx;

void input(){
    cin >> N;
    for (int i = 0; i < N; i++){
        cin >> L >> H;
        pillars[L] = H;
        if(maxVal < pillars[L]){
            maxIdx = L;
            maxVal = H;
        }
    }
}

void solution(){
    int ans=maxVal, h = 0;

    // left
    for (int i = 1; i < maxIdx; i++){
        h = max(h, pillars[i]);
        ans += h;
    }

    // right
    h = 0;
    for (int i = MAX - 1; i > maxIdx; i--){
        h = max(h, pillars[i]);
        ans += h;
    }

    cout << ans;
}

int main(){
    ios_base::sync_with_stdio(0); cin.tie(0);
    input();
    solution();
}

'문제 풀이 > 백준' 카테고리의 다른 글

BOJ 1079번: 쇠막대기  (0) 2023.12.15
BOJ 9047번: 6174  (0) 2023.12.11
BOJ 17485번: 진우의 달 여행 (Large)  (0) 2023.09.04
BOJ 2230번: 수 고르기  (0) 2023.09.03
BOJ 16928번: 뱀과 사다리 게임  (0) 2023.08.29
profile

danbibibi

@danbibibi

꿈을 꾸는 시간은 멈춰 있는 것이 아냐 두려워하지 마 멈추지 마 푸른 꿈속으로