반응형
리뷰
ans의 타입은 long long을 써야한다!!!!!!!!!!!
https://www.acmicpc.net/problem/6198
전역 변수
- n, ans : 옥상의 개수 정보를 저장할 변수 n, 정답을 저장할 변수 ans, ans는 long long타입이어야 한다!!!!
- lst : 옥상 높이 정보를 저장할 정수형 배열, 8만보다 크게 설정해 주면 된다.
함수
없음
문제풀이
- n값을 입력 받고 lst배열에 옥상의 높이 정보를 입력 받아준다.
- 스택으로 사용할 정수형 벡터 s를 초기화 해준다, 벡터 말고 스택으로 사용해도 무방하다.
- 현재 스택이 비지 않았고, 스택의 맨위 인자가 현재 옥상 높이보다 작으면 스택 맨위를 pop해준다.
- 스택의 사이즈 만큼 ans에 더해주고, 스택에 현재 옥상 높이를 추가해 준다.
- 반복문이 완료된 후에 ans에 저장된 값을 출력해 준다.
참고 사항
ans의 타입은 long long을 써야한다!!!!!!!!!!!
정답 코드
#include<iostream>
#include<vector>
using namespace std;
long long ans;
int lst[80001], n;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for (int i = 1; i <= n; i++) cin >> lst[i];
vector<int> s;
for (int i = 1; i <= n; i++) {
while (!s.empty() && s.back() <= lst[i]) s.pop_back();
ans += s.size();
s.push_back(lst[i]);
}
cout << ans;
}
728x90
반응형
'알고리즘 공부 > C++' 카테고리의 다른 글
[G3] 백준 16954번 움직이는 미로 탈출 C++ 백트래킹 (0) | 2024.10.02 |
---|---|
[G3] 백준 2812번 크게 만들기 C++ 스택, 문자열, 그리디 알고리즘 (0) | 2024.10.02 |
[G5] 백준 2493번 탑 C++ 스택 (0) | 2024.10.02 |
[G5] 백준 11000번 강의실 배정 C++ 우선순위 큐 (0) | 2024.10.02 |
[G5] 백준 3980번 선발 명단 C++ 백트래킹, 브루트포스 알고리즘 (0) | 2024.10.02 |