import java.util.*;
class Solution {
public int solution(int[] A) {
boolean[] array = new boolean[100002];
for (int a : A) {
array[a] = true;
}
for (int i = 1; i <= array.length; i++) {
if (!array[i]) {
return i;
}
}
return 100001;
}
}
문제를 잘못 읽어 배열 크기 산정을 잘못했다.
import java.util.*;
class Solution {
public int solution(int[] A) {
boolean[] array = new boolean[A.length + 2];
for (int a : A) {
array[a] = true;
}
for (int i = 1; i <= array.length; i++) {
if (!array[i]) {
return i;
}
}
return 100001;
}
}
다른 풀이를 보지 않았다면 생각해 낼 수 있었을까?
import java.util.*;
class Solution {
public int solution(int[] A) {
long sum = (long) (A.length + 1) * (A.length + 2) / 2;
for (int a : A) {
sum -= a;
}
return (int) sum;
}
}