https://www.acmicpc.net/problem/1269
1269번: 대칭 차집합
첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어
www.acmicpc.net
접근 :
- 집합 a, b 의 갯수를 입력받는다.
- 집합 a 를 hashMap으로 저장하고 집합 b 는 split을 사용하여 문자열 배열 그대로 받는다.
- 집합 b 의 원소를 한개씩 빼서 집합 a에 있는지 확인한다.
- 집합 a, b의 갯수를 더하고 중복된 수에 2를 곱해서 뺀다.
코드 구현 :
import java.io.*;
import java.util.HashMap;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] inputs = br.readLine().split(" ");
int n = Integer.parseInt(inputs[0]);
int m = Integer.parseInt(inputs[1]);
HashMap<String, Integer> a_numbers = new HashMap<>();
inputs = br.readLine().split(" ");
for (int i = 0; i < n; i++) {
a_numbers.put(inputs[i], 0);
}
inputs = br.readLine().split(" ");
int result = 0;
for (int j = 0; j < m; j++) {
if (a_numbers.containsKey(inputs[j])) {
result++;
}
}
result = n + m - 2*result;
System.out.println(result);
br.close();
}
}
* map을 사용한 것과 사용하지 않은 경우 속도 비교
- map을 사용하지 않으면 제한시간 2초를 넘긴다.
'JAVA > Coding Test' 카테고리의 다른 글
[JAVA] 백준 1085 직사각형에서 탈출_기하1 (0) | 2023.03.06 |
---|---|
[JAVA] 백준 11478 서로 다른 부분 문자열의 개수_집합과맵 (0) | 2023.03.05 |
[JAVA] 백준 1764 듣보잡_집합과맵 (0) | 2023.03.04 |
[JAVA] 백준 10816 숫자 카드 2_집합과맵 (0) | 2023.03.03 |
[JAVA] 백준 1620 나는야 포켓몬 마스터 이다솜_집합과맵 (0) | 2023.03.03 |