본문 바로가기
백준

백준 6198 옥상 정원 꾸미기

by 콩순이냉장고 2022. 3. 22.

문제 URL : https://www.acmicpc.net/problem/6198

 

6198번: 옥상 정원 꾸미기

문제 도시에는 N개의 빌딩이 있다. 빌딩 관리인들은 매우 성실 하기 때문에, 다른 빌딩의 옥상 정원을 벤치마킹 하고 싶어한다. i번째 빌딩의 키가 hi이고, 모든 빌딩은 일렬로 서 있고 오른쪽으

www.acmicpc.net

문제 접근법 :

자신의 위치에서 연속된 작은것들의 갯수를 구하는 문제입니다.

stack을 이용하면  풀수있는문제이기때문에

코드를 보면 직관적으로 이해하실수 있을겁니다.

 

소스코드 : 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include<bits/stdc++.h>
using namespace std;
vector<int> v;
int n;
void input() {
    cin >> n;
    v.resize(n);
    for (int i = 0; i < n; i++)
        cin >> v[i];
 
}
void solve() {
    stack<int> st;
    long long sum = 0;;
    for (int t : v) {
        while(!st.empty() && st.top() <= t)st.pop();
        sum += st.size();
        st.push(t);
    }
    cout << sum << endl;
}
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    //freopen("input.txt", "r", stdin);
    input();
    solve();
}
cs

 

 

궁금한점 혹은 모르는점 어떤질문이든 댓글은 언제나 환영입니다.

'백준' 카테고리의 다른 글

백준 17140 이차원 배열과 연산  (0) 2022.03.29
백준 2638 치즈  (0) 2022.03.29
백준 16724 피리 부는 사나이  (0) 2022.03.22
백준 17298 오큰수  (0) 2022.03.20
백준 7453 합이 0인 네 정수  (0) 2022.03.07