Algorithm/백준

Backjoon(백준) 1946번 - 신입사원(Java)

GrapeMilk 2020. 4. 17. 17:58

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

- 해결방법

 서류심사 순위 를 기준으로 오름차순으로 정렬한 뒤, 면접 점수 순위를 기준으로 앞에서 부터 최솟값을 갱신하면서 카운트를 샌다

 

1) 서류심사 순위와 면접 점수를 HashMap을 이용하여 key, value값으로 저장한 뒤

2) 서류심사 순위인 key값을 기준으로 오름차순 정렬하기 위해 TreeMap을 이용한다.

3) key값으로 value를 불러와서, value를 비교하면서 합격자들의 카운트를 더해간다.

 

- 소스 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;

public class NewEmployee {
    
    

    public static void main(String[] args) throws IOException {
        
        Map<Integer, Integer> a = new HashMap<Integer, Integer>();
        
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int t;
        t = Integer.parseInt(br.readLine());
        
        while (t > 0) {
            a.clear();
            int n, min = 100001, result = 0;
            n = Integer.parseInt(br.readLine());
            for (int i = 0; i < n; i++) {
                String x;
                x = br.readLine();
                String[] arr = x.split(" ");
                a.put(Integer.parseInt(arr[0]), Integer.parseInt(arr[1]));
            }
            
            TreeMap<Integer, Integer> tm = new TreeMap<Integer, Integer>(a);
            
            
            for (Integer key : tm.keySet()) {
                if (min > tm.get(key)) {
                    min = tm.get(key);
                    result ++;
                }
            }

            System.out.println(result);
            t--;
        }
   
    }

}

* Map구조에서 key값 정렬하기

 - HashMap으로 선언하여 <Key, Value>를 설정하고 TreeMap으로 바꿔서 key값이나 value값을 기준으로 정렬해준다. 

 - HashMap은 내부 hash 값에 따라 키 순서가 정해지므로 특정 규칙없이 출력된다. 따라서 TreeMap으로 변환해야 한다

 ( https://jobc.tistory.com/176 )

 

* StringTokenizer

 - spilt는 원하는 구획문자로 끊은 뒤에 배열로 만들어주고, Tokenizer는 토큰으로 저장해서 다른 메서드와 함께 처리할 수 있다

( https://arer.tistory.com/48 )

 

* clear() 

 - 배열안의 객체를 0으로 만들어 주는 함수

( https://codechacha.com/ko/java-collections-arraylist-clear/ )