https://www.acmicpc.net/problem/1764
1764번: 듣보잡
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.
www.acmicpc.net
✔️ 풀이과정
자바에서 지원하는 HashSet을 사용하면 쉽게 풀리는 문제이다.
HashSet을 선언하여 문제 조건에 맞게 문자열 집합을 생성하고, retainAll() 함수를 사용하여 두 집합의 교집합을 구해준 다음 해당 교집합의 크기와 문자열들을 출력한다. 이때 출력되어야 할 문자열은 사전순으로 정렬되어야 하므로 Arrays.sort() 함수를 사용하여 정렬한 후 출력해주었다.
✔️ 코드
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
HashSet<String> setN = new HashSet<>();
HashSet<String> setM = new HashSet<>();
for(int i=0 ; i<N ; i++){
st = new StringTokenizer(br.readLine());
setN.add(st.nextToken());
}
for(int i=0 ; i<M ; i++){
st = new StringTokenizer(br.readLine());
setM.add(st.nextToken());
}
setN.retainAll(setM);
System.out.println(setN.size());
String [] arr = setN.toArray(new String[0]);
Arrays.sort(arr);
for(int i=0 ; i<setN.size() ; i++){
System.out.println(arr[i]);
}
}
}
'✔️ Algorithm > Baekjoon' 카테고리의 다른 글
[백준/Java] 11399번 : ATM (0) | 2023.03.04 |
---|---|
[백준/Java] 11047번 : 동전 0 (0) | 2023.03.04 |
[백준/Java] 24416번 : 알고리즘 수업 - 피보나치 수 1 (0) | 2023.02.20 |
[백준/Java] 11478번 : 서로 다른 부분 문자열의 개수 (0) | 2023.02.18 |
[백준/Java] 2609번 : 최대공약수와 최소공배수 (0) | 2023.02.17 |
댓글