BackJoon Algorithm - Java
문제
풀이
- 기본적인 이분탐색으로 풀어봤다 - 시간초과
- HashSet을 이용하여 remove()를 사용해 중복을 제거했다 - 실패(?)
- 구글을 찾아보니 HashSet을 쓰면 실패로떠서 TreeSet으로 푸신분을 보고 풀었다 - 성공
- HashSet을 쓰면 왜 실패로 뜨는지 찾아봐야겠다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.StringTokenizer;
import java.util.TreeSet;
public class Back_1822 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
TreeSet<Integer> Aset = new TreeSet<>();
st = new StringTokenizer(br.readLine());
for (int i = 0; i < A; i++) {
Aset.add(Integer.parseInt(st.nextToken()));
}
st = new StringTokenizer(br.readLine());
for (int i = 0; i< B; i++){
Aset.remove(Integer.parseInt(st.nextToken()));
}
if(Aset.size() == 0){
System.out.println(0);
}
else{
System.out.println(Aset.size());
for (Integer integer : Aset) {
System.out.print(integer + " ");
}
}
br.close();
}
}
댓글남기기