diff --git "a/\353\260\261\354\244\200/Gold/6198.\342\200\205\354\230\245\354\203\201\342\200\205\354\240\225\354\233\220\342\200\205\352\276\270\353\257\270\352\270\260/README.md" "b/\353\260\261\354\244\200/Gold/6198.\342\200\205\354\230\245\354\203\201\342\200\205\354\240\225\354\233\220\342\200\205\352\276\270\353\257\270\352\270\260/README.md" new file mode 100644 index 0000000..7986e4d --- /dev/null +++ "b/\353\260\261\354\244\200/Gold/6198.\342\200\205\354\230\245\354\203\201\342\200\205\354\240\225\354\233\220\342\200\205\352\276\270\353\257\270\352\270\260/README.md" @@ -0,0 +1,65 @@ +# [Gold V] 옥상 정원 꾸미기 - 6198 + +[문제 링크](https://www.acmicpc.net/problem/6198) + +### 성능 요약 + +메모리: 2680 KB, 시간: 12 ms + +### 분류 + +자료 구조, 스택 + +### 제출 일자 + +2024년 8월 25일 06:46:49 + +### 문제 설명 + +

sook-001(1).jpg

+ +

도시에는 N개의 빌딩이 있다.

+ +

빌딩 관리인들은 매우 성실 하기 때문에, 다른 빌딩의 옥상 정원을 벤치마킹 하고 싶어한다.

+ +

i번째 빌딩의 키가 hi이고, 모든 빌딩은 일렬로 서 있고 오른쪽으로만 볼 수 있다.

+ +

i번째 빌딩 관리인이 볼 수 있는 다른 빌딩의 옥상 정원은 i+1, i+2, .... , N이다.

+ +

그런데 자신이 위치한 빌딩보다 높거나 같은 빌딩이 있으면 그 다음에 있는 모든 빌딩의 옥상은 보지 못한다.

+ +

예) N=6, H = {10, 3, 7, 4, 12, 2}인 경우

+ +
             = 
+ =           = 
+ =     -     = 
+ =     =     =        -> 관리인이 보는 방향
+ =  -  =  =  =   
+ =  =  =  =  =  = 
+10  3  7  4  12 2     -> 빌딩의 높이
+[1][2][3][4][5][6]    -> 빌딩의 번호
+ + + +

따라서, 관리인들이 옥상정원을 확인할 수 있는 총 수는 3 + 0 + 1 + 0 + 1 + 0 = 5이다.

+ +### 입력 + + + +### 출력 + + + diff --git "a/\353\260\261\354\244\200/Gold/6198.\342\200\205\354\230\245\354\203\201\342\200\205\354\240\225\354\233\220\342\200\205\352\276\270\353\257\270\352\270\260/\354\230\245\354\203\201\342\200\205\354\240\225\354\233\220\342\200\205\352\276\270\353\257\270\352\270\260.cc" "b/\353\260\261\354\244\200/Gold/6198.\342\200\205\354\230\245\354\203\201\342\200\205\354\240\225\354\233\220\342\200\205\352\276\270\353\257\270\352\270\260/\354\230\245\354\203\201\342\200\205\354\240\225\354\233\220\342\200\205\352\276\270\353\257\270\352\270\260.cc" new file mode 100644 index 0000000..1e2b2a7 --- /dev/null +++ "b/\353\260\261\354\244\200/Gold/6198.\342\200\205\354\230\245\354\203\201\342\200\205\354\240\225\354\233\220\342\200\205\352\276\270\353\257\270\352\270\260/\354\230\245\354\203\201\342\200\205\354\240\225\354\233\220\342\200\205\352\276\270\353\257\270\352\270\260.cc" @@ -0,0 +1,27 @@ +#include +#include +using namespace std; + +int N; +long long h; +stack> s; + +int main() { + ios::sync_with_stdio(false); + cin.tie(0); + + long long answer = 0; + cin >> N; + + //s.push({1000000001, 0}); + for(int i=1; i <= N; i++) { + cin >> h; + + while(!s.empty() && s.top().first <= h) s.pop(); + answer += s.size(); + s.push({h, i}); + } + + cout << answer; + return 0; +} \ No newline at end of file