๐Ÿ’ป Coding Problems Solving/Greedy

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์š”๊ฒฉ์‹œ์Šคํ…œ (์ž๋ฐ” java)

Kim_dev 2023. 6. 5. 21:23

1. ๋ฌธ์ œ : https://school.programmers.co.kr/learn/courses/30/lessons/181188

 

2. ํ’€์ด

์‹œ์ž‘ ๊ฐ’ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ ํ›„

๊ทธ๋ฆฌ๋””ํ•˜๊ฒŒ ๋‹ค์Œ ์‹œ์ž‘ ๊ฐ’์„ ์ด์ „ ๋๋‚˜๋Š” ๊ฐ’๊ณผ ๋น„๊ตํ•˜๋ฉฐ, ๊ทธ ์•ˆ์— ๋“ ๋‹ค๋ฉด ๋„˜์–ด๊ฐ€๊ณ  ๊ทธ ์•ˆ์— ๋“ค์ง€ ์•Š๋Š”๋‹ค๋ฉด (tagets[i][0] >= before) 

before๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•ด์ฃผ๊ณ  ๋ฏธ์‚ฌ์ผ ์ˆ˜ ++ ํ•ด์ค€๋‹ค.

 

3. ์ฝ”๋“œ

import java.util.*;
class Solution {
    public int solution(int[][] targets) {
        int answer = 0;
        int before = 0;
        
        Arrays.sort(targets, new Comparator<int[]>(){
            @Override
            public int compare(int[] obj1, int[] obj2){
                if(obj1[1] > obj2[1]) return 1;
                else return -1;
            }
        });
        
        for(int i=0; i<targets.length; i++) {
            System.out.println(targets[i][0]);
        	if(targets[i][0] >= before) {
        		before = targets[i][1];
        		answer++;
        	}
        }
        return answer;
    }
}