일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 |
Tags
- cs
- 자료구조
- LeetCode
- db
- algorithm
- 데이터베이스
- 운영체제
- OS
- c++
- 프로그래머스
- 독서
- algogritim
- Database
- Computer Science
- SW Expert Academy
- 알고리즘
- 네트워크
- swea
- language
- D3
- 법의학
- 감상문
- 재테크/투자
- data structure
- D2
- 문제풀이
- BOJ
- network
- 백준
- Programmers
Archives
- Today
- Total
선택은 나의 것
[BOJ 백준] 6549번 히스토그램에서 가장 큰 직사각 본문
문제
BOJ number : https://www.acmicpc.net/problem/6549
6549번: 히스토그램에서 가장 큰 직사각형
입력은 테스트 케이스 여러 개로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, 직사각형의 수 n이 가장 처음으로 주어진다. (1 ≤ n ≤ 100,000) 그 다음 n개의 정수 h1, ..., hn (0 ≤ hi ≤
www.acmicpc.net
접근
백준 1725번 히스토그램 문제와 풀이방법이 똑같은 문제이다.
[BOJ 백준] 1725번 히스토그램
문제 BOJ 1725 : https://www.acmicpc.net/problem/1725 1725번: 히스토그램 첫 행에는 N (1 ≤ N ≤ 100,000) 이 주어진다. N은 히스토그램의 가로 칸의 수이다. 다음 N 행에 걸쳐 각 칸의 높이가 왼쪽에서부터..
algoribi.tistory.com
코드
#include<algorithm>
#include<iostream>
#include<stack>
#define endl "\n"
using namespace std;
long long ans = 0, top, arr[100005];
stack<long long> s;
int main() {
while(1) {
int n, top;
cin >> n;
if (n == 0)
break;
s.push(0);
arr[0] = 0;
arr[n + 1] = 0;
for (int i = 1; i <= n; i++)
cin >> arr[i];
for (int i = 1; i <= n + 1; i++) {
while (!s.empty() && arr[s.top()] > arr[i]) {
top = s.top();
s.pop();
ans = max(ans, arr[top]*(i - s.top() - 1));
}
s.push(i);
}
cout << ans << endl;
while(!s.empty())
s.pop();
ans = 0;
}
}
'☽ Algorithm > BOJ' 카테고리의 다른 글
[BOJ 백준] 14426번 접두사 찾기 (0) | 2021.07.16 |
---|---|
[BOJ 백준] 1701번 Cubeditor (0) | 2021.07.15 |
[BOJ 백준] 1725번 히스토그램 (0) | 2021.07.13 |
[BOJ 백준] 12764번 싸지방에 간 준하 (0) | 2021.07.12 |
[BOJ 백준] 17609번 회문 (0) | 2021.07.07 |
Comments