문제 확인은 알아서.........
처음에 Set으로 풀면 되겠다 라고 생각했지만, 하나보니까 배열로 풀려고 했다. 2중 for문 까지 만들고 거의 다 왔는데, 도저히 안되서 다른사람의 풀이를 보았고, Set으로 푸는 방법을 골랐다.
총평: 문제를 이해하자
import java.util.*; // 무적의 import
class Solution {
public int solution(int n, int[] lost, int[] reserve) {
Set<Integer> reserveSet = new HashSet<>();
Set<Integer> lostSet = new HashSet<>();
// 같은 번호 제거
for (int i: reserve) reserveSet.add(i);
for (int i: lost) {
if (reserveSet.contains(i)) reserveSet.remove(i);
else lostSet.add(i);
}
// +1, -1 -> lostSet에서 제거
for (int i: reserveSet) {
if (lostSet.contains(i - 1)) lostSet.remove(i - 1);
else if (lostSet.contains(i + 1)) lostSet.remove(i + 1);
}
return n - lostSet.size();
}