- Published on
Codility - Missing Integer
- Author
- Name
- yceffort
Missing Integer
문제
주어진 배열 A에 빠져 있는 가장 작은 양의 정수를 구하시오
A=[1, 3, 6, 4, 1, 2] 이라면 답은 5
A=[1, 2, 3] 이라면 답은 4
A=[-1, -3] 이라면 답은 1
풀이
function solution(A) {
// 배열 길이 만큼 false로 채워진 체커를 생성
const checker = Array(A.length).fill(false)
// A를 돌면서 양의 정수라면 해당 checker의 index를 true로 바꿔준다.
for (let i = 0; i < A.length; i++) {
if (A[i] > 0) {
checker[A[i] - 1] = true
}
}
// 가장 가까운 false위치를 찾는다.
const index = checker.indexOf(false)
// 없으면 모든 수가 다 차있는 것이므로 길이 + 1, 아니라면 해당 index + 1을 리턴한다.
return index === -1 ? checker.length + 1 : index + 1
}
해설
문제와 관련된 해설은 아니고, indexOf는 일반적인 배열을 for