Open dlehdanakf opened 3 years ago
index
value - 1
위와 같이 숫자 3이 없을 경우 바로 찾는 것이 가능하다. 5분만에 코드를 작성하고 제출했다.
하지만 채점을 돌려보니 전체 테스트케이스 중 절반만 통과했다... 생각해보니 반례가 많았다.
다른 방법도 사용해봤다.
길이가 N 인 배열을 만들고 모두 false로 초기화한다.
false
배열을 돌면서 해당 값을 인덱스로하여 N 배열의 값을 적절히 true로 변환한다.
최종적으로 false 인 값을 리턴한다.
function solution(A) { const N = new Array(A.length).fill(false); for(let i = 0; i < A.length; i++) { N[A[i] - 1] = true; } return N.indexOf(false) + 1; }
[1, 2, ... , N + 1]
function solution(A) { const N = new Array(A.length + 1).fill(false); for(let i = 0; i < A.length; i++) { N[A[i] - 1] = true; } return N.findIndex(e => e === false) + 1; }
개요
(아마도)오답내용
index
와value - 1
값이 서로 일치하지 않는 요소를 찾으려고 했다.위와 같이 숫자 3이 없을 경우 바로 찾는 것이 가능하다. 5분만에 코드를 작성하고 제출했다.
하지만 채점을 돌려보니 전체 테스트케이스 중 절반만 통과했다... 생각해보니 반례가 많았다.
다른 방법도 사용해봤다.
길이가 N 인 배열을 만들고 모두
false
로 초기화한다.배열을 돌면서 해당 값을 인덱스로하여 N 배열의 값을 적절히 true로 변환한다.
최종적으로
false
인 값을 리턴한다.[1, 2, ... , N + 1]
범위의 배열에서 빠진 숫자가 N + 1 일 경우를 찾지 못한다.