์ ๋ ฌ๋ ๋ฐฐ์ด์ ํ๋ ์ค๊ฒ!
์ค๋ณต๋ ์ซ์ ์๋ ๋ฐฐ์ด์ ๊ฐ๊ฒ ํด์ค!!
์์ธํ ๋ฌธ์ ์ค๋ช ๊ณผ ๋ฆฟ์ฝ๋ ํํ์ด์ง ์ฐธ๊ณ . ๋ฌธ์ ํ๋ฌ๊ฐ๊ธฐ
๋ฌธ์ ๋ฅผ ์ ์ฝ์ด๋ณด๋ฉด, ๋ค๋ฅธ ๋ฐฐ์ด์ ๋ง๋ค์ด์ ์ฌ์ฉํ์ง ๋ง๊ณ ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ ํ๋๋ง ์ฌ์ฉํ๋ผ๊ณ ๋ช ์๋์ด์๋ค!.
์ด ๋ฌธ์ ๋ ์ฑ์ ํ ๋ ๋ค์๊ณผ ๊ฐ์ด ํ๊ธฐ ๋๋ฌธ์ !! ๋ค๋ฅธ ๋ฐฐ์ด์ ๋ง๋ค์ด์ ์ฌ์ฉํ์ง ๋ง๋ผ๊ณ ํ๋ค. ๋ํ
๋จ ํ๋์ ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ผ๊ณ ํฉ๋๋ค!
// nums is passed in by reference. (i.e., without making a copy)
int len = removeDuplicates(nums);
// any modification to nums in your function would be known by the caller.
// using the length returned by your function, it prints the first len elements.
for (int i = 0; i < len; i++) {
print(nums[i]);
}
๋ค์ด์ค๋ ์ธํ ๋ฐฐ์ด์์ ๋ชจ๋ ๊ฒ์ ํด๊ฒฐํ์ต๋๋ค.!
c++ ์ vector ์ ๊ฐ์ด ํน์ ์์๋ฅผ ์ ๊ฑฐํ๋ ์ฐ์ฐ์ O(n) ์ ์๊ฐ์ด ๋ค๊ฒ ๋ฉ๋๋ค.
๋ฐฐ์ด ๊ตฌ์กฐ ํน์ฑ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ด์ด์ ธ์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ค์์ ์์ผ๋ก ์ด์ด์ค ํ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํ๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ํฉ๋๋ค.
๋ง์ฝ ์ ๊ฑฐํด์ผํ๋ ์์๊ฐ ๋งค์ฐ ๋ง์์ง๋ค๋ฉด ์๊ฐ์ ์ฌ์ ๊ฐ ์์ด์ง๊ฒ ์ฃ ??
๋ค๋ง ๋ฆฌ์คํธ ๊ด๋ จ ์๋ฃ๊ตฌ์กฐ๋ก ํน์ ์์๋ฅผ ์ญ์ ํ๋ค๋ฉด ์ฐ์ฐ์ O(1) ์ด ๋ฉ๋๋ค!
๋ฌธ์ ๋ ์ด๋ ต์ง ์์ต๋๋ค. !! ์ํ๊ธฐ๋ก ๊ฐ์๋ค!
var removeDuplicates = function (nums) {
let nowIndex = 0;
for (let compareIndex = 1; compareIndex <= nums.length; compareIndex++) {
if (nums[nowIndex] !== nums[compareIndex]) {
nowIndex++;
nums[nowIndex] = nums[compareIndex];
}
}
return nowIndex;
};
์ทจ์ ๊ด๋ จ ์ฝ๋ฉํ ์คํธ ์ค๋น๋ฅผ ํ๋ค๊ฐ ์ฐพ์ ๋ฌธ์ ์ง !! ๊ด์ฐฎ์ ๊ฒ ๊ฐ๋ค!!
ํ๋ฃจ์ 3์๊ฐ์ฉ ์๊ณ ๋ฆฌ์ฆ ๊ด๋ จ ๋ฌธ์ ๋ฅผ ํธ๋๋ฐ, ์๊ฐ์ด ๋จ์ผ๋ฉด Hard ๋ฌธ์ ๋ ๋์ ํด์ผ๊ฒ ๋ค!