Algorithm/inflearn

#씨름 선수(Greedy)

마닐라 2021. 10. 7. 23:01

 

키 순서대로 오름차순 정렬을 하게 되면 몸무게만 비교해보면 된다.

키는 작으니 몸무게라도 커야한다.

선발되는 인원의 몸무게를 max값으로 두고 해당 몸무게보다 클 때만 선발해준다. cnt++

그리고 선발된 인원의 몸무게를 다시 max값으로 둔다.

 

import java.util.*;

class Body implements Comparable<Body> {
    public int h, w;
    Body(int h, int w) {
        this.h = h;
        this.w = w;
    }

    @Override
    public int compareTo(Body o) {
        return o.h-this.h;
    }

}

class Main {

    public int solution(ArrayList<Body> arr, int n){
        //선발되는 인원 수
        int cnt = 0;
        //키로 내림차순 정렬 시키기
        Collections.sort(arr);
        
        //최대 몸무게
        int max = Integer.MIN_VALUE;
        for(Body ob : arr) {
            if(ob.w > max) {
                max = ob.w;
                cnt++;
            }
        }
        return cnt;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner kb = new Scanner(System.in);
        int n = kb.nextInt();
        ArrayList<Body> arr = new ArrayList<>();
        for(int i = 0; i < n; i++) {
            int h = kb.nextInt();
            int w = kb.nextInt();
            arr.add(new Body(h, w));
        }
        System.out.println(T.solution(arr, n));
        
    }
}

 

'Algorithm > inflearn' 카테고리의 다른 글

결혼식  (0) 2021.10.07
회의실 배정  (0) 2021.10.07
피자 배달거리(DFS 활용)  (0) 2021.10.06
섬나라 아일랜드(BFS)  (0) 2021.10.05
섬나라 아일랜드(DFS)  (0) 2021.10.05