내가 개발해볼게!!

[BOJ] 1946번: 신입 사원 (Java) 본문

Algorithm/BOJ

[BOJ] 1946번: 신입 사원 (Java)

보송송희 2023. 7. 11. 23:22

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

 

1946번: 신입 사원

첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성

www.acmicpc.net

 

문제

 

입력

첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성적, 면접 성적의 순위가 공백을 사이에 두고 한 줄에 주어진다. 두 성적 순위는 모두 1위부터 N위까지 동석차 없이 결정된다고 가정한다.

 

출력

각 테스트 케이스에 대해서 진영 주식회사가 선발할 수 있는 신입사원의 최대 인원수를 한 줄에 하나씩 출력한다.

 

난이도

실버 1

 

Sol

public class B1946_신입사원 {
    public static int T;

    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

        T = Integer.parseInt(bf.readLine());

        for(int i=0; i<T; i++){
            int N = Integer.parseInt(bf.readLine());

            rank[] arr = new rank[N];
            for(int j=0; j<N; j++){
                StringTokenizer token = new StringTokenizer(bf.readLine());
                int s = Integer.parseInt(token.nextToken());
                int m = Integer.parseInt(token.nextToken());
                arr[j] = new rank(s, m);
            }

            Arrays.sort(arr);
            // s 기준 오름차순 정렬

            // 이후 m만 비교해 판단

            int count = 1; // 정렬 후 첫 번째 원소 포함
            int max_score = arr[0].m;

            for(int j=1; j<N; j++){
                if(max_score>arr[j].m){
                    count++;
                    max_score = arr[j].m;
                }
            }
            System.out.println(count);
        }
    }

    public static class rank implements Comparable<rank>{
        int s; // 서류심사 성적
        int m; // 면접 성적 순위

        public rank(int s, int m){
            this.s = s;
            this.m = m;
        }

        @Override
        public int compareTo(rank o) {
            if(this.s > o.s){
                return 1;
            }
            else {
                return -1;
            }
        }
    }
}

 

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

[BOJ] 2688번: 줄어들지 않아  (0) 2023.07.19
[BOJ] 9934번: 완전 이진 트리  (1) 2023.07.13
[BOJ] 1052번: 물병 (Java)  (0) 2023.07.07
[BOJ] 1743번: 음식물 피하기 (Java)  (0) 2023.07.04
[BOJ] 1377번: 버블 소트  (0) 2023.06.16