๋ฌธ์ ํ์
nums
๋ ๋น๋ด๋ฆผ์ฐจ์ ์ ์ ๋ฐฐ์ด์ด๋ฉฐ, ์ต๋ 2๊ฐ๊น์ง ์ค๋ณต๋ ์ ์๋๋ก ๋๋จธ์ง ์ค๋ณต์ ์ ๊ฑฐํด์ผํ๋ค.
๊ทธ๋ฆฌ๊ณ , ์๋์ ์ธ ์์น๋ฅผ ์ ์งํด์ผํ๋ค.
์ฃผ์ด์ง ์กฐ๊ฑด์ ๋ง๊ฒ ์ค๋ณต์ ์ ๊ฑฐํ ์์์ ๊ฐ์ k
๋ฅผ ๋ฐํํด์ผํ๋ค.
nums
๋ฐฐ์ด ์ธ ๋ค๋ฅธ ๋ฐฐ์ด์ ์ฌ์ฉํ๋ฉด ์๋๋ค.
ํ์ด
1๏ธโฃ ํฌ์ธํฐ ๋ฐฉ์
nums
๋ฐฐ์ด๋ง ์ฌ์ฉํด์ผํ๊ธฐ ๋๋ฌธ์, nums
๋ฐฐ์ด์ ์์๋ค์ ๊ฐฑ์ ํด๋๊ฐ๋ฉฐ ์ค๋ณต์ ์ต๋ 2๊ฐ๊น์ง ํ์ฉํ๋ฉด์ ์ค๋ณต์ ์ ๊ฑฐํด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
๋จผ์ , ๊ฐฑ์ ํ ์ ์๋ ์กฐ๊ฑด์ด ๋ญ์ง ์๊ฐํด๋ดค๋ค.
- ์์๊ฐ ๋ฌ๋ผ์ง๋ ์๊ฐ ๊ฐฑ์ ํ๊ณ ํฌ์ธํฐ๋ฅผ ์ด๋
- ์์๊ฐ ๊ฐ์ ๊ฒฝ์ฐ
- ์ค๋ณต๋ ์์๊ฐ 2๊ฐ๊น์ง๋ ํ์ฉ๋๋ฏ๋ก, 2๊ฐ๊น์ง๋ ๊ฐฑ์ ํ๊ณ ํฌ์ธํฐ๋ฅผ ์ด๋
- ๋จ, 3๊ฐ๋ถํฐ๋ ๊ฐฑ์ ํ์ง ์๊ณ ์์๊ฐ ๋ฌ๋ผ์ง๋ ์๊ฐ๊น์ง ํฌ์ธํฐ๋ฅผ ์์ง์ผ ์ ์์
์ ์กฐ๊ฑด์ ๋จผ์ ์๊ฐํด๋ณด๊ณ ๋์, ์ฝ๋๋ก ๊ตฌํ์ ํด๋ณด์๋ค.
class Solution {
public int removeDuplicates(int[] nums) {
int idx = 1;
int cnt = 1;
for(int i=1;i<nums.length;i++){
// ์์๊ฐ ๊ฐ์ ๊ฒฝ์ฐ
if(nums[i-1]==nums[i]){
// ์นด์ดํธ ์ฆ๊ฐ
cnt++;
// 2๊ฐ๊น์ง๋ ํ์ฉํ๋ฏ๋ก ๊ฐฑ์ ํ ํฌ์ธํฐ ์ฆ๊ฐ
if(cnt<=2){
nums[idx++] = nums[i];
}
}else{
//์์๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ ์นด์ดํธ๋ฅผ 1๋ก ์ด๊ธฐํ ํ, ๊ฐฑ์
cnt=1;
nums[idx++] = nums[i];
}
}
return idx;
}
}
๊ฒฐ๊ณผ
๐ ํ๊ณ
์ฒ์์๋ ๋จธ๋ฆฟ์์ด ์ ์ ๋ฆฌ๋์ง ์์์ ํ์ด๊ฐ ๋ ์ค๋ฅด์ง ์์๋๋ฐ
ํด๋ต์ ๊ตฌํ๊ธฐ ์ํ ์กฐ๊ฑด์ ๋จผ์ ๊ผผ๊ผผํ ์ดํด๋ณด๊ณ
์ด๋ฅผ ์ฝ๋๋ก์ ์ ํํ ๊ตฌํํด๋ด๋ Pass ํ ์ ์์๋ค.