https://app.codility.com/programmers/lessons/3-time_complexity/perm_missing_elem/
PermMissingElem coding task - Learn to Code - Codility
Find the missing element in a given permutation.
app.codility.com
내가 제출한 코드는 아래와 같다.
function solution(A) {
// write your code in JavaScript (Node.js 8.9.4)
if (A.length === 0) return 1;
let sum1 = A.reduce((acc, cur) => {
return acc + cur;
})
let sum2 = ((A.length + 1) * (A.length + 2)) / 2
return Math.floor(sum2 - sum1);
}
sum2는 element가 모두 있다고 가정한 배열의 합, sum1은 주어진 배열의 합이다.
즉, 정상적인 배열에서 element가 하나 없는 배열의 합을 빼면 없는 element를 구할 수 있다.
빈 배열인 경우는 1이 없는 배열이므로 1을 return 해주어야 한다.
앞으로 다른 문제들도 빈 배열의 경우를 항상 염두에 두고 풀어야겠다.
그리고 이 문제는 reduce나 반복문을 쓰지 않더라도 구하는 방법이 있을 거 같은데.. 다른 방법을 생각해보자.
'코딩 테스트 > Codility' 카테고리의 다른 글
Codility FrogRiverOne JavaScript 풀이 (0) | 2020.03.29 |
---|---|
Codility TapeEquilibrium JavaScript 풀이 (0) | 2020.03.29 |
Codility FrogJmp JavaScript 풀이 (0) | 2020.03.29 |
Codility OddOccurrencesInArray JavaScript 풀이 (0) | 2020.03.29 |
Codility CyclicRotation JavaScript 풀이 (0) | 2020.03.28 |