https://www.acmicpc.net/problem/14425
package baekjoon;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.HashSet;
import java.util.StringTokenizer;
// 문자열 집합
public class BJ14425 {
static int numSet;
static int numCheck;
static HashSet<String> arr = new HashSet<>();
static int cnt;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
numSet = Integer.parseInt(st.nextToken());
numCheck = Integer.parseInt(st.nextToken());
for(int i = 0; i < numSet; i++) {
arr.add(br.readLine());
}
for(int i = 0; i < numCheck; i++) {
if(arr.contains(br.readLine())) cnt++;
}
System.out.println(cnt);
}
}
자료구조 점검
Set & Map
Set | Map | |
---|---|---|
자료 형태 | Value만 존재 | Key, Value 쌍으로 존재 |
중복 여부 | 중복 불가 | Key값 중복 불가 |
contains | contains(value) | containsKey(key) |
get | 불가 | get(key) |
Hash & Tree
Hash | Tree | |
---|---|---|
순서 | 순서 없음 | 정렬 순서 유지 |
시간 복잡도 | O(1) | O(log n) |