본문 바로가기
CS/Algorithm

[알고리즘][문자열][1764] 듣보잡

by 별토끼. 2018. 4. 20.
반응형

[알고리즘][문자열][1764] 듣보잡


* 문제

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


* 풀이

Java를 얼마나 활용할 수 있느냐에 따라 해결 속도가 갈릴 것 같은 문제.

HashMap과 List의 기능을 잘 활용하면 금방 해결할 수 있는 문제이다.



*코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package algorithm_String;
 
 
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
 
public class q_1764 {
 
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int m = scan.nextInt();
        scan.nextLine();
        HashMap<StringString> map =new HashMap<>();
        for(int i=0;i<n;i++) {
            String tmp = scan.nextLine();
            map.put(tmp, "N");
        }
        
        /*
         * 1. m을 입력받을 때, n에 있는지 검사
         * 2. Hash Map을 활용하도록 한다. 
         * 3. containsKey 이용한다.
         * 4. 이후 Collections의 sort 활용 위해 결과값을 list에 담는다.
         */
        int cnt = 0;
        List<String> list = new LinkedList<>();
        for(int i=0;i<m;i++) {
            String tmp = scan.nextLine();
            if(map.containsKey(tmp)) {
                list.add(tmp);
                cnt++;
            }
        }
        
        System.out.println(cnt);
        Collections.sort(list);
        for(int i=0;i<list.size();i++) {
            System.out.println(list.get(i));
        }
    }
 
}
 
cs


반응형

댓글