ALGORITHM

백준 10775 공항 (Java)

공부하는_다온 2023. 4. 16. 23:41

1. 문제 링크

 

10775번: 공항

예제 1 : [2][?][?][1] 형태로 도킹시킬 수 있다. 3번째 비행기는 도킹시킬 수 없다. 예제 2 : [1][2][3][?] 형태로 도킹 시킬 수 있고, 4번째 비행기는 절대 도킹 시킬 수 없어서 이후 추가적인 도킹은 불

www.acmicpc.net

 

2. 문제 및 입출력예제

 

3. 문제 풀이

  1. 서로소 집합을 이용했다.
  2. 입력 받고 그 게이트를 기준으로 도킹할 위치를 찾고 그 위치가 0이 되면 더이상 도킹할 수 없는 상태이다.
  3. 도킹할 위치를 찾으면 해당 위치와 그 앞을 도킹(합)한다.

 

4. 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Queue;

public class Main {
    public static void main(String[] args) throws IOException{
       BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
       int result = 0;
       int G = Integer.parseInt(br.readLine());
       int P = Integer.parseInt(br.readLine());
       int[] gate = new int[G+1];
       int now = 0;
       out:
       for(int i=0;i<P;i++) {
    	   now = Integer.parseInt(br.readLine());
    	   for(int j=now;j>0;j--) {
    		   gate[j]++;
    		   System.out.println(j+ " "+gate[j]);
    		   if(gate[j]>j) {
    			   break out;
    		   }
    	   }
    	   result++;
       }
       System.out.println(result);
	}
}