티스토리 뷰

import java.util.Scanner;

class Stack {
private int top = 0;
private int arr[];
public Stack() {top=0; arr = new int[80001];}
public	boolean isEmpty() {return top == 0;}
public	void push(int e) {arr[top++] = e;}
public	void pop() { --top;}
public	int peek() {return arr[top-1];}
public	int cnt() {return top;}
}

public class Main {
	public static void main(String args[]) {
		Stack s = new Stack();
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		long ans = 0;
		
		while(n > 0) {
			int tmp = 0;
			tmp = scan.nextInt();
			
			if(s.isEmpty() == true) s.push(tmp);
			else {
				if(s.peek() > tmp) s.push(tmp);
				else {
					while(! s.isEmpty() && s.peek() <= tmp) {
						s.pop();
					}
					s.push(tmp);
				}
			}
			ans += s.cnt()-1;
			n--;
		} 
		scan.close();
		System.out.println(ans);
	}
}

 

풀이 : 스택을 class로 구현 했습니다.

 

이 java 코드는 c++코드를 java로 바꾼 것 입니다.

 

https://h202.tistory.com/225

 

c++ 6198번 옥상 정원 꾸미기 (백준)

#include #define M 80001 class Stack { //Stack 구현 private: int top; int arr[M]; public: Stack() : top(0) {} //생성자 top = 0 초기화 bool isEmpty() {return top == 0;} //비었는가? void push(int e) {arr[top++] = e;} //넣기 int pop() { return a

h202.tistory.com

 

'java > BAEKJOON' 카테고리의 다른 글

java 1835번 카드 (백준)  (0) 2023.04.02
java 16562번 친구비 (백준)  (0) 2023.03.19
java 1034번 거짓말 (백준)  (1) 2023.03.19
java 16120번 PPAP (백준)  (0) 2023.03.18
java 1834번 나머지와 몫이 같은 수 (백준)  (0) 2023.03.06
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함