[백준] 오큰수 17298번 - Java

GOSHK·2022년 2월 6일
0

[백준] Java

목록 보기
12/49
post-thumbnail

[백준] 오큰수 17298번

나의 풀이

public class OkeunSoo {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        Stack<Integer> stack = new Stack<>();
        List<Integer> nums = new ArrayList<>();
        int[] result = new int[N];
        Arrays.fill(result, -1);

        StringTokenizer st = new StringTokenizer(br.readLine());
        for(int i = 0; i < N; i++) {
            nums.add(Integer.parseInt(st.nextToken()));
        }

        for(int i = 0; i < N; i++) {
            while(!stack.isEmpty() && nums.get(stack.peek()) < nums.get(i)) {
                result[stack.pop()] = nums.get(i);
            }
            stack.add(i);
        }

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

0개의 댓글