728x90

import java.io.*;
import java.util.*;

class pairs
{

    pairs(int i, int ii)
    {
        first = i;
        second = ii;
    }
    public int first;
    public int second;
}

public class Main {
    static BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //선언

    static int arr[] = new int[10001];
    static int size;
    static ArrayList<Integer>[] tree;
    public static void main(String[] args) throws IOException {

        String n = bf.readLine();
        size  = Integer.parseInt(n);

        String n1 = bf.readLine();
        String[] parts = n1.split(" ");

        for (int j = 0; j < parts.length; j++) {
            arr[j] = Integer.parseInt(parts[j]);
        }

        tree = new ArrayList[size+1];

        for (int i = 0; i < size; i++) {
            tree[i] = new ArrayList<>();
        }

        search(0,0,parts.length-1);

        for (int i = 0; i < size; i++) {
            Iterator<Integer> iterator = tree[i].iterator();
            while (iterator.hasNext())
            {
                System.out.print(iterator.next()+" ");
            }
            System.out.println();
        }

    }


    public static void search(int level, int start, int end)
    {
        if(level == size)
            return;

        int mid = (start + end)/2;

        tree[level].add(arr[mid]);

        search(level+1, start, mid-1);
        search(level + 1, mid+1, end);
    }
}
728x90

'알고리즘' 카테고리의 다른 글

백준 알고리즘 5347  (2) 2024.03.29
백준 알고리즘 2609  (1) 2024.03.29
백준 알고리즘 2075  (0) 2024.03.29
백준 알고리즘 2800  (0) 2024.03.29
백준 알고리즘 10828  (0) 2024.03.29

+ Recent posts