본문 바로가기
알고리즘 & 자료구조/백준

백준 17298_1

by 신재권 2022. 3. 4.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Stack;
import java.util.StringTokenizer;

public class Main17298_1 {

	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));		
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringBuilder sb = new StringBuilder();
		
		
		Stack<Integer> s = new Stack<Integer>();
		int N = Integer.parseInt(br.readLine()); //수열의 크기 N 
		int[] num = new int[N];
		
		StringTokenizer st= new StringTokenizer(br.readLine());
		
		int[] ans = new int[N];
		for(int i=0; i<N; i++) {
			ans[i] = -1;
		}
		
		for(int i=0; i<N; i++) {
			num[i] = Integer.parseInt(st.nextToken());
			while(!s.empty() && num[s.peek()] < num[i]) {
				ans[s.pop()] = num[i];
			}
			s.push(i);
		}
		
		for(int i=0; i<N; i++) {
			if(i == N-1) {
				sb.append(ans[i]);
				break;
			}
			sb.append(ans[i]).append(" ");
		}
		
		bw.write(sb.toString());
		bw.close();
		br.close();


	}

}

 

'알고리즘 & 자료구조 > 백준' 카테고리의 다른 글

백준 2231  (0) 2022.03.07
백준 1189  (0) 2022.03.05
백준 1325  (0) 2022.03.03
백준 1068  (0) 2022.03.02
백준 2636  (0) 2022.03.01