본문 바로가기

백준/JAVA

[JAVA] 백준_1269

[문제]

1269번: 대칭 차집합 (acmicpc.net)

 

1269번: 대칭 차집합

첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어

www.acmicpc.net

[풀이]

처음에는 A의 원소의 개수 + B의 원소의 개수 - 2 * (A의 원소와 B의 원소 중 겹치는 원소) 를 출력하면 되는 문제라고 생각하여 ArrayList를 이용해 A와 B의 원소들을 하나씩 다 추가하고 중첩 반복문을 이용해 겹치는 원소가 몇 개인지 세었다.

그런데 이렇게 푸니까 시간초과가 나와서 다른 방법을 찾아야만 했다.

 

다른 방법은 그냥 겹치지 않는 남은 원소를 하나씩 세는 것이다. 

HashSet의 add 메소드를 이용해 A와 B의 원소를 각각 입력받고 contains 메소드로 setA의 원소를 하나씩 iterate하여 setB에 포함되어 있는지 확인한다. 그 반대도 똑같이 수행한다. 만약 포함되어 있다면 if문이 시행되지 않고 포함되어 있지 않다면 if문이 시행되어 answer=0 값에서 1을 더한다. 그 answer값을 출력하면 문제 해결이다.   

'백준 > JAVA' 카테고리의 다른 글

[JAVA] 백준_1764  (0) 2023.08.11
[JAVA] 백준_10816  (0) 2023.08.06
[JAVA] 백준_1620  (0) 2023.08.05
[JAVA] 백준_7785  (0) 2023.08.04
[JAVA] 백준_10815  (0) 2023.08.03