The Kkang's man

[자바 / Java] 백준 1946 : 신입 사원 본문

알고리즘/그리디

[자바 / Java] 백준 1946 : 신입 사원

정낑깡 2021. 6. 6. 01:58

문제


풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class NewEmployee_1946{
public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        
        int T = Integer.parseInt(reader.readLine());	// 테스트케이스 입력받음
        int t, i;
 
        for(t=0; t<T; t++){
            int N = Integer.parseInt(reader.readLine()); // 지원자 수 입력받음
            int [] rank = new int[N+1];		// 순위는 1위부터 있기 때문에 index0 대신 1부터
 
            for(i=0; i<N; i++) {
                st = new StringTokenizer(reader.readLine());
                
                int paper = Integer.parseInt(st.nextToken());		// 서류 순위
                int interview = Integer.parseInt(st.nextToken());	// 면접 순위
                
                rank[paper] = interview;	// 배열의 index를 서류 순위로, 값을 면접 순위로
            }
            
            int result = 1;			// 서류가 1위일 경우 무조건 합격이기 때문에 1부터 시작
            int standard = rank[1];		// 서류 1위의 면접 순위를 기준으로 잡고
            for(i=2; i<=N; i++) {
                if(standard > rank[i]) {	// 기준보다 순위가 높을 경우
                    result++; 			// 합격자 ++
                    standard = rank[i];		// 기준은 다시 그 면접 순위로 갱신
                }
            }
            System.out.println(result);
        }
    }
}

 

Comments