문제 풀이 및 개발 공간

[백준] 17299번 오등큰수 문제! (gold 3 본문

백준공부/java

[백준] 17299번 오등큰수 문제! (gold 3

gomduri43 2023. 4. 26. 09:48

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));
        int[] numth=new int[1000001];
        int n=Integer.parseInt(br.readLine());
        int[] num=new int[n];
        StringTokenizer st=new StringTokenizer(br.readLine());
        for(int i=0; i<n; i++){
            num[i]=Integer.parseInt(st.nextToken());
            numth[num[i]]++;
        }
        Stack<Integer> stk=new Stack<>();
        for(int i=0; i<n; ){
            while(stk.size()!=0 && numth[num[i]]>numth[num[stk.peek()]]) {
                num[stk.pop()] = num[i];
            }
            stk.push(i);
            i++;
        }
        while(stk.size()!=0){
            num[stk.pop()]=-1;
        }
        for(Integer e:num){
            bw.write(e+" ");
        }

        bw.flush();
    }
}