https://leetcode.com/problems/missing-number/
์กฐ๊ฑด
n == nums.length ์ด๊ณ nums์ ๋ชจ๋ ์ซ์๋ ์ค๋ณต์ด ์๋ค.
nums ๋ฐฐ์ด์ ๊ฐ์ 0 <= nums[i] <= n ๋ฅผ ๋ง์กฑํ๋ค.
๋ด ์ฝ๋
- ์ต๋๊ฐ์ n์ผ๋ก ๋ณด๊ณ ํด๋น ๊ฐ์์ -1์ฉ ํ๋ฉด์ ๋ฐฐ์ด์ ์๋ ์ซ์๋ฅผ ๋ฐํํ๋ค.
/**
* @param {number[]} nums
* @return {number}
*/
var missingNumber = function(nums) {
let n = nums.length;
while (n > -1) {
if (!nums.includes(n)) {
return n;
}
n--;
}
};
๊ฐ์ ์ฝ๋ 1
- 0๋ถํฐ n๊น์ง์ ํฉ๊ณ๋ฅผ ๊ตฌํ๊ณ nums ๋ฐฐ์ด์ ์๋ ๊ฐ์ ๋บ์ ๋ ๊ฐ์ด nums ๋ฐฐ์ด์ ํฌํจ๋์ง ์์ ๊ฐ์ด๋ค.
- 0๋ถํฐ n๊น์ง์ ํฉ๊ณ๋ฅผ ๊ตฌํ๋ ๊ณต์์ n(n+1)/2 ์ด๋ค.
/**
* @param {number[]} nums
* @return {number}
*/
var missingNumber = function(nums) {
let sum = nums.length * (nums.length + 1) / 2
for (let num of nums) sum -= num;
return sum;
};
- ๋ฐฐ์ด์ ํฉ๊ณ๋ฅผ ๊ตฌํ ๋ for๋ฌธ ๋์ reduce() ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
/**
* @param {number[]} nums
* @return {number}
*/
var missingNumber = function(nums) {
let sum = nums.reduce((a,b) => a+b, 0);
return (nums.length) * (nums.length + 1) / 2 - sum;
};
๊ฐ์ ์ฝ๋ 2
- ๋นํธ XOR์ ๊ฐ์ด ๋ ๋ฒ ์ ์ฉ๋๋ฉด ์ด๊ธฐ ๊ฐ์ผ๋ก ๋์์จ๋ค.
- ์์๊ฐ ๋ค๋ฅด๋๋ผ๋ ๊ฐ์ ๊ฐ์ด ๋ ๋ฒ XOR๋๋ฉด ์ด๊ธฐ๊ฐ๊ณผ ๊ฐ๋ค.
- 0๋ถํฐ n๊น์ง์ ๊ฐ์ ์ด๊ธฐ๊ฐ 0์ XORํ๊ณ ๋ฐฐ์ด์ ๋ชจ๋ ์๋ฅผ XORํ๋ฉด ํ ๋ฒ๋ง XOR๋ ๊ฐ์ด ๋จ๋๋ค.
/**
* @param {number[]} nums
* @return {number}
*/
var missingNumber = function(nums) {
let res = nums.length;
for (let i = 0; i < nums.length; i++)
res = res ^ i ^ nums[i];
return res;
};
๋นํธ XOR ์ฐ์ฐ์ (^)
๋์๋๋ ๋ ๋นํธ๊ฐ ์๋ก ๋ค๋ฅด๋ฉด 1์ ๋ฐํํ๊ณ , ์๋ก ๊ฐ์ผ๋ฉด 0์ ๋ฐํํ๋ค.
'๊ฐ๋ฐ > ์๋ฃ๊ตฌ์กฐ & ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๊ณ ๋ฆฌ์ฆ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ด ๋ชจ์ (0) | 2022.07.08 |
---|---|
๋ชจ์๊ณ ์ฌ (Java) (0) | 2022.02.15 |
K๋ฒ์งธ์ (Java) (0) | 2022.02.09 |
์ฒด์ก๋ณต (Java) (0) | 2022.02.08 |
์ฃผ์ ๊ฐ๊ฒฉ (Java) (0) | 2022.02.06 |
๋๊ธ