[백준 1946] 신입 사원

One-nt·2022년 8월 10일
0

백준

목록 보기
14/19

문제 출처

사용 언어: Java

  1. 구상
  • 서류 순위를 오름차순으로 정렬
    → 기준을 정한 후, 1 ~ 기준 전까지의 면접 순위를 비교하여 기준이 합격할 수 있는지 판단

  • (지원자 + 1) 크기의 배열을 만들어 서류 순위대로 면접 순위를 입력
    알고리즘 참고

  • 기준을 정하고 배열에 있는 면접 순위가 기준보다 작으면 합격자에 포함시키고 해당 숫자를 기준으로 잡기

  1. 구현
import java.io.IOException;
import java.util.NoSuchElementException;
import java.util.Scanner;

public class sol_1946 {

	
	public static void main(String[] args) throws NoSuchElementException, IOException {
		Scanner s = new Scanner(System.in);
		
		//테스트 케이스 수 입력
		int test = s.nextInt();
		
        //테스트 케이스가 끝날 때까지 실행
		while (test != 0) {
        	//처음 기준인 arr[1]은 무조건 합격하므로 초기값은 1
			int choose = 1;
            //지원자 수 입력 받기
			int appli = s.nextInt();
			
			int[] arr = new int[appli + 1];
			
			for (int i = 1; i < appli + 1 ; i++) {			
            	//지원자의 서류 순위 입력
                int x = s.nextInt();
                //지원자의 면접 순위 입력
                int y = s.nextInt();
				arr[x] = y;
			}			
			
            //처음 기준 설정
			int standard = arr[1];
			
			for (int i = 2; i <= appli; i++) {
            	/*기준보다 순위가 높으면 합격자에 포함시키고 
                기준으로 설정*/
				if (standard > arr[i]) {
					choose++;
					standard = arr[i];
				}
			}
				
			//합격자 수 출력
			System.out.println(choose);
            //테스트 케이스 수 줄이기
			test--;
		}
		
				
	}	
}

0개의 댓글