트라이알고리즘을 사용해서도 풀 수 있는 문제이지만, 해시를 사용하여 푸는 것이 더 간단해보여서 그러한 풀이방식으로 접근했다.
1. 검사해야할 문자열을 HashSet에 넣는다
2. 이후에 나오는 문자열들을 contains를 통해서 비교한다.
3. true가 나온 횟수만큼 카운팅하여 그 수를 리턴한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
import java.util.StringTokenizer;
public class BOJ_14425_문자열집합 {
static Set<String> p = new HashSet<>();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuffer sb = new StringBuffer();
StringTokenizer st = new StringTokenizer(br.readLine());
int cnt = 0;
int N = stoi(st.nextToken());
int M = stoi(st.nextToken());
for (int i = 0; i < N; i++) {
p.add(br.readLine());
}
for (int i = 0; i < M; i++) {
if (p.contains(br.readLine())) {
cnt++;
}
}
System.out.println(cnt);
}
private static int stoi(String s) {
return Integer.parseInt(s);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
백준 14503번 (JAVA) 로봇 청소기 (0) | 2021.04.21 |
---|---|
백준 5052번 (JAVA) 전화번호 목록 (0) | 2021.04.21 |
백준 10158번 (JAVA) 개미 (0) | 2021.04.19 |
백준 1012번 (JAVA) 유기농배추 (0) | 2021.04.19 |
백준 1011번 (JAVA) Fly me to the Alpha Centauri (0) | 2021.04.15 |