반응형
https://www.acmicpc.net/problem/14425
- 문제
- 문제 풀이
백준 14425번 문자열 집합은 실버 3 난이도의 문자열 및 맵 문제이다. 이 문제에서는 n개의 문자열이 주어지고 그다음에 주어지는 m개의 문자열 중에 몇 개가 n개의 문자열과 겹치는지를 출력만 해주면 되는 문제이다. 이 문제는 HashMap을 이용해서 풀겠다. HashMap을 잘 모르면 밑에 있는 링크를 참고하면 되겠다.
https://propercoding.tistory.com/89
우선 <String, Integer> 형태인 HashMap을 만든다. 키는 문제에서 주어지는 문자열을 넣을 거고 값은 사실 필요 없어서 맵에 추가할 때 0으로 넣겠다.
우선 n개의 문자열들을 모조리 맵에 추가한다. 그리고 m개의 문자열들을 입력받을 때 containsKey 함수를 이용해서 맵에 그 문자열이 있으면 카운트를 1씩 증가시킨다. 그리고 마지막에 카운트를 출력해주면 된다.
- 코드
import java.io.*;
import java.util.*;
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());
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < n; i++) {
map.put(br.readLine(), 0);
}
int count = 0;
for (int i = 0; i < m; i++) {
if (map.containsKey(br.readLine())) count++;
}
System.out.print(count);
}
}
- 후기
HashMap을 이용하면 간단히 풀 수 있는 문제였다.
반응형
'백준' 카테고리의 다른 글
[백준] 4358번 : 생태학 – JAVA [자바] (0) | 2022.04.26 |
---|---|
[백준] 1269번 : 대칭 차집합 – JAVA [자바] (0) | 2022.04.26 |
[백준] 2444번 : 별 찍기 - 7 – JAVA [자바] (0) | 2022.04.23 |
[백준] 14607번 : 피자 (Large) – JAVA [자바] (0) | 2022.04.22 |
[백준] 1302번 : 베스트셀러 – JAVA [자바] (0) | 2022.04.22 |
댓글