JAVA/Coding Test

[JAVA] 백준 1138 한 줄로 서기

오늘도개발 2024. 5. 20. 20:51

 

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

 

 

접근 : 

 

 - 키 순서대로 자신 위치를 찾아서 넣기

 

 - 만약에 누군가 있다면 자신보다 키가 작은 사람이므로 다음으로 진행 후 위치 확인

 

 

 

 

 

코드구현 

 

import java.io.*;

public class Main {
    private static int n;
    private static int[] nums;

    static void input() throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        n = Integer.parseInt(br.readLine());
        String[] inputs = br.readLine().split(" ");

        nums = new int[n];
        for(int i = 0 ; i < n ; i++) nums[i] = Integer.parseInt(inputs[i]);

        br.close();
    }

    static int[] calFunc(){
        int[] res = new int[n];
        int count = 0;

        //각 자리수에 해당하는 사람을 구함
        for(int i = 0 ; i < n ; i++){
            count = 0;
            // 해당하는 자리에 누군가 있으면 pass, 누군가 없으면 그 자리가 내자리 인지 확인
            for(int j = 0 ; j < n ; j++){
                if(res[j] != 0) continue;

                if(count == nums[i]){
                    res[j] = i + 1;
                    break;
                }
                count++;
            }
        }
        return res;
    }

    public static void main(String[] args) throws IOException{
        StringBuilder sb = new StringBuilder();
        input();
        for(int height : calFunc()) sb.append(height).append(' ');
        System.out.println(sb.toString());
    }
}