From e7b47f050fa5ad9d33a82c4bc49730198bb16b9e Mon Sep 17 00:00:00 2001 From: smosco Date: Mon, 19 Jan 2026 12:54:34 +0900 Subject: [PATCH] missing number solution --- missing-number/smosco.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 missing-number/smosco.js diff --git a/missing-number/smosco.js b/missing-number/smosco.js new file mode 100644 index 0000000000..35d5203189 --- /dev/null +++ b/missing-number/smosco.js @@ -0,0 +1,27 @@ +/** + * Missing Number + * 0부터 n까지의 숫자 중 하나가 빠진 배열에서 누락된 숫자 찾기 + */ + +// 풀이 1: 합 공식 이용 +// 시간복잡도: O(n), 공간복잡도: O(1) +// 0부터 n까지의 합에서 배열 원소들의 합을 빼면 빠진 숫자가 나온다 +const missingNumber = (nums) => { + const n = nums.length; + const expectedSum = (n * (n + 1)) / 2; // 등차수열 합 공식 + const actualSum = nums.reduce((sum, num) => sum + num, 0); + return expectedSum - actualSum; +}; + +// 풀이 2: Set 사용 +// 시간복잡도: O(n), 공간복잡도: O(n) +// Set에 넣고 0부터 n까지 순회하면서 없는 숫자 찾기 +const missingNumberSet = (nums) => { + const numSet = new Set(nums); + + for (let i = 0; i <= nums.length; i++) { + if (!numSet.has(i)) { + return i; + } + } +};