요격 시스템

LJM·2023년 8월 1일
0

programmers

목록 보기
39/92

https://school.programmers.co.kr/learn/courses/30/lessons/181188?language=java

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

class Node implements Comparable<Node>{
    int s;
    int e;
    Node(int s, int e){
        this.s = s;
        this.e = e;
    }
##     @Override
    public int compareTo(Node o){
        return this.s == o.s ? Integer.compare(this.e, o.e) : Integer.compare(this.s, o.s);
    }
}


class Solution {
    public int solution(int[][] targets) {
        ArrayList<Node> arr = new ArrayList<>();
        for (int[] target : targets) {
            arr.add(new Node(target[0], target[1]));
        }

        Collections.sort(arr);

        int answer = 1;
        int missile = arr.get(0).e - 1; // 첫 개구간의 끝에서 -1 한 지점에서 요격

        for (int i = 1; i < arr.size(); i++) {
            if (missile >= arr.get(i).s) {
                missile = Math.min(missile, arr.get(i).e - 1); // 공통 부분에서 요격
            } else {
                missile = arr.get(i).e - 1; // 새로운 요격 미사일 발사
                answer++;
            }
        }

        return answer;
    }
}
profile
게임개발자 백엔드개발자

0개의 댓글