반응형

📖 문제

 

📋 코드

import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		StringBuffer sb = new StringBuffer();
		int N = sc.nextInt();
		int A[] = new int[N + 1];
		int ans[] = new int[N + 1];
		Stack<Integer> st = new Stack<>();

		for (int i = 0; i < N; i++) {
			A[i] = sc.nextInt();
		}

		for (int i = N - 1; i >= 0; i--) {
			while (!st.empty() && st.peek() <= A[i]) {
				st.pop();
			}
			
			if(st.empty()) ans[i]=-1;
			else ans[i] = st.peek();
			
			st.push(A[i]);
		}

		for (int i = 0; i < N; i++) {
			sb.append(ans[i] + " ");
		}
		
		System.out.println(sb);
	}
}

👨🏻‍💻 결과

 

 

 

 

🔗 링크

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

 

17298번: 오큰수

첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다.

www.acmicpc.net

 

반응형

'🧩PS > 🥈Nomal' 카테고리의 다른 글

[JAVA] 백준 1966번 - 프린터 큐  (0) 2022.01.04
[JAVA] 백준 18258번 - 큐 2  (0) 2021.12.07
[JAVA] 백준 1874번 - 스택 수열  (0) 2021.11.29
[JAVA] 백준 2004번 - 조합 0의 개수  (0) 2021.11.23
[JAVA] 백준 2981번 - 검문  (0) 2021.11.17

+ Recent posts