티스토리 뷰
// PermMissingElem
/**
[ 문제 ]
N 개의 다른 정수로 구성된 배열 A가 제공됩니다.
배열은 [1 .. (N + 1)] 범위의 정수를 포함합니다.
이는 정확히 하나의 요소가 누락되었음을 의미합니다.
당신의 목표는 누락 된 요소를 찾는 것입니다.
함수를 작성하십시오.
function solution(A);
배열 A가 주어지면 누락 된 요소의 값을 반환합니다.
[ example ]
다음과 같은 배열 A가 제공됩니다.
A [0] = 2
A [1] = 3
A [2] = 1
A [3] = 5
이 함수는 누락 된 요소 4를 반환해야합니다.
*/
function solution(A) {
// write your code in JavaScript (Node.js 8.9.4)
A.sort(function(a, b) {
return a - b;
});
for(let i=0; i<A.length; i++){
if(i+1 !== A[i]){
return i+1
}
}
}
// 소요시간 : 8분
// 결과 : 50%
// 오류 : RUNTIME ERROR
function solution(A) {
// write your code in JavaScript (Node.js 8.9.4)
A.sort(function(a, b) {
return a - b;
});
for(let i=0; i<A.length; i++){
if(i+1 !== A[i]){
return i+1
}
}
return A.length + 1;
}
// 소요시간 : 2분
// 결과 : 100%
/**
[ 문제풀이 ]
먼저 A의 배열안의 값이 순서대로 정렬 될 수 있도록 sort 시켜준다.
이때 단순히 A.sort(); 하게되면 오름차순 순서대로 숫자가 정렬되지 않기 때문에
풀이과정처럼 오름차순 순으로 정렬할 수 있도록 sort 해준다.
배열의 갯수만큼 반복문을 돌다 해당 index + 1 과 배열의 값이 일치하지 않을때 값을 return 시킨다.
이렇게하면 끝난줄로만 알았는데 50점 밖에 안나와서 문제풀이 방식을 참고하니
1부터 N까지 숫자가 주어지는데 한 숫자가 빠진다 그래서 중간 수가 빠지는걸로만 생각했었는데
배열의 마지막 숫자가 빠지는 경우를 고려해주지 못했던 로직이었다.
그래서 마지막에 A.length+1 을 return 하도록 하는 로직을 추가했더니 문제가 완벽하게 해결 될 수 있었다.
*/
'Frontend > Algorithm' 카테고리의 다른 글
# Codility – FrogJmp (0) | 2020.08.03 |
---|