๋ฌธ์ ํ์
nums
๋ ๋น๋ด๋ฆผ์ฐจ์ ๋ฐฐ์ด์ด๋ค.
์ค๋ณต๋๋ ์์๋ค์ 1๊ฐ์ ์์๋ค๋ก ๋ฐ๊พธ๊ณ , ์๋์ ์ธ ์์น๋ ์ ์งํด์ผํ๋ค.
์ฆ, [1, 1, 2, 2, 3]
์ธ ๊ฒฝ์ฐ, [1, 2, 3, _, _ ]
์ผ๋ก ๋ง๋ค์ด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋ฆฌ๊ณ , ์ค๋ณต์ ์ ๊ฑฐํ ์์ ๊ฐ์ k
๋ฅผ ๋ฐํํด์ผํ๋ค.
ํ์ด
1๏ธโฃ ํฌ์ธํฐ ๋ฐฉ์
๋จผ์ , unique ํ ์์๋ฅผ ๊ฐฑ์ ํ๊ธฐ ์ํ ํฌ์ธํฐ๊ฐ ํ์ํ๋ค๋ ์๊ฐ์ ํ๋ค.
๊ทธ๋ฆฌ๊ณ , ๋ฐฐ์ด nums
๋ฅผ ์ํํ๋ฉด์ ๊ฐ์ด ๋ฌ๋ผ์ง๋ ์ธ๋ฑ์ค๋ฅผ ๋จผ์ ์ถ์ถํด๋ด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
for(int i=1; i<nums.length; i++){
if(nums[i-1]!=nums[i]){
System.out.println(i);
}
}
์์ ๊ฐ์ for๋ฌธ์ ์ํํ๋ฉด, ์์๊ฐ ๋ฌ๋ผ์ง๋ ์์ ์ ๊ตฌํ ์ ์๋ค.
์๋ฅผ ๋ค์ด,
(์ธ๋ฑ์ค) 0 1 2 3 4 5 6 7 8 9
[0, 0, 1, 1, 1, 2, 2, 3, 3, 4]
์์ ๊ฐ์ ๋ฐฐ์ด์ธ ๊ฒฝ์ฐ
์ธ๋ฑ์ค 2, 5, 7, 9์ ๊ตฌํ ์ ์๊ฒ ๋๋ค.
๊ฐฑ์ ์ ์ํ ํฌ์ธํฐ๋ idx = 1 ๋ถํฐ ์์ํด๋ ๋๋๊ฒ,
nums
์ ์ฒซ๋ฒ์งธ ์์๊ฐ ๊ฐฑ์ ๋๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ๋ผ์, ์์๊ฐ ๋ฌ๋ผ์ง๋ ์์ ์ ํฌ์ธํฐ ์์น์ ๊ฐฑ์ ์ ํด์ฃผ๊ณ ํฌ์ธํฐ๋ 1 ์ฆ๊ฐ์์ผ์ฃผ๋ฉด ๋๋ค.
import java.util.*;
class Solution {
public int removeDuplicates(int[] nums) {
int idx = 1;
for(int i=1; i<nums.length; i++){
if(nums[i-1]!=nums[i]){
nums[idx++] = nums[i];
}
}
return idx;
}
}
๊ฒฐ๊ณผ
๐ ํ๊ณ
ํฌ์ธํฐ ๋ฐฉ์์ ๋ฌธ์ ๋ฅผ ์ฌ๋ฌ ๊ฐ ํ์ด๋ณด๋, ๋ฌธ์ ํ์ด๋ฅผ ์ฝ๊ฒ ๋ ์ฌ๋ฆด ์ ์์๋ค.
๊ฐฑ์ ์ ์ํ ํฌ์ธํธ๋ฅผ ์ด๋ป๊ฒ ์ฐพ๋์ง ๋ถํฐ ์ฐจ๊ทผ ์ฐจ๊ทผ ๋ฐ์ ๋๊ฐ๋
์ฝ๋๋ฅผ ์ ์ง์ ์ผ๋ก ์์ฑ์ํฌ ์ ์์๊ณ ๋จธ๋ฆฌ๋ฅผ ์ ๋ฆฌํด๋๊ฐ๋ฉฐ ํ์ดํ ์ ์์๋ค.