• [1764] 백준 - 듣보잡(JAVA)

    2021. 8. 11.

    by. 데롱디롱

    728x90

    - 듣도 못한 사람 이름 key로하는 map을 만든다.

    - 듣도 못한 사람 목록을 오름차순 정렬한다. => TreeMap이용

    - 듣도 못한 사람이 보도 못한 사람에도 속하면 value true로 바꿔준다.

    - map을 순회하면서, 듣보잡인 사람(true)을 출력한다.

     

     

     

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Set;
    import java.util.StringTokenizer;
    import java.util.TreeMap;
    
    public class Main {
    
    	public static void main(String[] args) throws IOException {
    		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    		StringTokenizer st = new StringTokenizer(br.readLine());
    		int N = Integer.parseInt(st.nextToken());
    		int M = Integer.parseInt(st.nextToken());
    
    		// 듣도 못한 명단
    		HashMap<String, Boolean> people = new HashMap();
    		for (int i = 0; i < N; i++)
    			people.put(br.readLine(), false);
    
    		// 오름차순 정렬
    		TreeMap<String, Boolean> tm = new TreeMap<String, Boolean>(people);
    		Set<String> keyset = people.keySet();
    		Iterator<String> keyiterator = tm.keySet().iterator();
    
    		// 보도 못한 사람에도 속하면 true
    		for (int i = 0; i < M; i++) {
    			String person = br.readLine();
    			if (tm.containsKey(person))
    				tm.put(person, true);
    		}
    
    		int num = 0;
    		StringBuilder sb = new StringBuilder();
    		for (String key : tm.keySet()) {
    			if (tm.get(key) == true) {
    				num++;
    				sb.append(key + "\n");
    			}
    		}
    		
    		System.out.println(num);
    		System.out.println(sb.toString());
    	}
    
    }

    댓글