14425번: 문자열 집합
https://www.acmicpc.net/problem/14425
# 코드
import java.io.*;
import java.util.HashSet;
import java.util.Set;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
// 빠른 입출력을 위한 BufferedReader 와 BufferedWriter
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// N, M
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
long n = Long.parseLong(st.nextToken());
long m = Long.parseLong(st.nextToken());
// 집합 S
Set<String> s = new HashSet<>();
for (long i = 0; i < n; i++) {
s.add(br.readLine());
}
long count = 0;
// 집합에 포함된 데이터의 개수 세기
for (long j = 0; j < m; j++) {
String input = br.readLine();
if (s.contains(input)) {
count++;
}
}
bw.write(String.valueOf(count));
// Reader 버퍼 닫기
br.close();
// Writer 버퍼 비운 뒤 닫기
bw.flush();
bw.close();
}
}
- HashSet : Set 인터페이스의 구현 클래스로, '집합'을 뜻하며 순서가 없고 중복 값을 허용하지 않는다는 특징이 있다.
- 순서를 유지하고 싶다면 LinkedHashSet 클래스를 사용하면 된다.
다음은 HashSet 의 주요 메소드이다.
- add() : 데이터 삽입
- remove() : 데이터 삭제
- contains() : 값 포함 유무
- clear() : 전체 데이터 삭제
- isEmpty() : 값 존재 유무
- size() : set 데이터 크기
'코딩테스트 > 자바 문제풀이' 카테고리의 다른 글
[자료구조2] 백준 2075 N번째 큰 수 (4) | 2024.07.23 |
---|---|
[자료구조2] 백준 4358 생태학 (4) | 2024.07.22 |
[자료구조2] 백준 1620 나는야 포켓몬 마스터 이다솜 (0) | 2024.07.20 |
[자료구조] 백준 1874 스택 수열 (0) | 2024.07.19 |
[자료구조] 백준 1966 프린터 큐 (0) | 2024.07.18 |