Problem
- You receive some random elements as a space-delimited string.
- 임의의 element를 공백으로 구분된 문자열로 받는다.
- Check if the elements are part of an ascending sequence of integers starting with 1, with an increment of 1.
- element가 1부터 시작해서 1씩 증가하는 정수의 오름차순 sequence인지 확인한다.
Rules
- If the elements can form such a sequence, and no number is missing:
0
- element가 sequence 형태인 경우:
0
- 숫자가 없는 경우:
0
- If there are any non-numeric elements in the input:
1
- input에 숫자가 아닌 element가 있는 경우:
1
- If the elements are part of such a sequence, but some numbers are missing, and n is the lowest of them:
n
- element가 sequence의 일부이지만, 일부 숫자가 누락되고, 누락된 수가 가장 낮은 경우:
n
Solution
function findMissingNum(str) {
if (str === '') return 0;
let arr = str.split('');
if (!arr.every(Number)) return 1;
arr = arr.sort((a, b) => a - b).map(Number);
for (let i = 0; i < arr.length; i++) {
if (arr[i] !== i + 1) return i + 1;
}
return 0;
}
findMissingNum(''); // 0
findMissingNum('1 2 3 a'); // 1
findMissingNum('1 2 3 4'); // 0
findMissingNum('2 3 4 5'); // 1
findMissingNum('2 1 4 5'); // 3
findMissingNum('1 4'); // 2