본문 바로가기
알고리즘/백준

[JAVA] 백준_2493_탑

by 박 현 황 2021. 2. 7.

문제링크

https://www.acmicpc.net/problem/2493

 

2493번: 탑

첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1

www.acmicpc.net

 

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.Stack;
import java.util.StringTokenizer;


public class Main_2493 {
	
	public static void main(String[] args) throws NumberFormatException, IOException{
		Stack<int []> stack = new Stack<>();
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		
		int N = Integer.parseInt(br.readLine());
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		for(int i=0;i<N;i++) {
			int height = Integer.parseInt(st.nextToken());
			while(!stack.isEmpty()) {
				if(stack.peek()[1] >=height) {
					System.out.print(stack.peek()[0]+" ");
					break;
				}
				stack.pop();
			}
			
			if(stack.isEmpty()) {
				System.out.print("0 ");
			}
			stack.push(new int[] {i+1,height});
		}
		
	}

}

 

씨발

메모리 오류나서 못풀겠더라

몰라서 찬영띠한테 물어봤는데 찬영띠한테 물어본걸로 해도 메모리 초과떠서

Scanner를 BufferedReader로 바꾸니까 되더라 우울했고 자살말렸음

내 원래 코드 올리고 싶었는데 어디갔는지 못찾겠음