백준공부/java
[백준] 6198번 옥상 정원 꾸미기 문제! (gold 5
gomduri43
2023. 4. 14. 10:42
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
Stack<Integer> find=new Stack<>();
int n=Integer.parseInt(br.readLine());
int[] building=new int[n+2];
building[n+1]=1000000001;
for(int i=1; i<building.length-1; i++){
building[i]=Integer.parseInt(br.readLine());
}
for(int i=1; i<building.length;){
if(find.size()==0 || building[find.peek()]>building[i]){
find.push(i);
i++;
}
else {
building[find.peek()] = i - find.pop() - 1;
}
}
long total=0;
for(int i=1; i<n+1; i++){
total+=building[i];
}
bw.write(total+"");
bw.flush();
}
}