๋ฌธ์ ํ์
์ ์ ๋ฐฐ์ด nums
์ val
์ด ์ฃผ์ด์ง๋ค.
๋ฐฐ์ด nums
์์ val
๊ณผ ์ผ์นํ๋ ์์๋ฅผ ๋ชจ๋ ์ ๊ฑฐํด์ผํ๋ค.
๊ทธ๋ฆฌ๊ณ nums
๋ฐฐ์ด์์ val
๊ณผ ์ผ์นํ์ง ์๋ ์์์ ๊ฐ์๋ฅผ ๋ฐํํด์ผํ๋ค.
์ผ์นํ์ง ์๋ ์์์ ๊ฐ์๊ฐ k
์ผ ๋, nums
์ k
๋ฒ ์ธ๋ฑ์ค ๊น์ง๋ val
๊ณผ ์ผ์นํ์ง ์๋ ์์๋ค๋ก ์ฑ์๋ฃ์ด์ผ ํ๋ค.
ํ์ด
1๏ธโฃ Arrays.sort() ์ฌ์ฉ
๋จผ์ , ๋ฌธ์ ์กฐ๊ฑด์ ๋ณด๋ nums
๋ฐฐ์ด์ ์์ ์ต๋๊ฐ์ 50
์์ ์ ์ ์์๋ค.
๋ฐ๋ผ์, nums
๋ฐฐ์ด์์ val
๊ณผ ์ผ์นํ๋ ์์๋ฅผ 51
๋ก ๋ชจ๋ ๋ณํํด๋๊ณ
์ ๋ ฌ์ ์ํํ๋ฉด, ๋ฐฐ์ด์ ๋ท๋ถ๋ถ์ผ๋ก ๋ฐ๋ ค๋ ์์ ๊ฒ์ผ๋ก ์์ํ๋ค.
import java.util.*;
class Solution {
public int removeElement(int[] nums, int val) {
int len = nums.length;
int cnt = 0;
for(int i=0;i<len;i++){
if(nums[i]==val){
nums[i] = 51;
cnt++;
}
}
Arrays.sort(nums);
return len - cnt;
}
}
๊ฒฐ๊ณผ
2๏ธโฃ ํฌ์ธํฐ ๋ฐฉ์
ํฌ์ธํฐ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด, ์ ๋ ฌ์ ์ํํ์ง ์์ ์ ์๋ค.
nums
์์ val
๊ณผ ์ผ์นํ๋ ์ธ๋ฑ์ค์ธ ๊ฒฝ์ฐ, ํฌ์ธํฐ๋ฅผ ๋ฉ์ถ๊ณ
์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ์๋ง ๊ฐ์ ๊ฐฑ์ ํ๊ณ ํฌ์ธํฐ๋ฅผ ์ด๋์ํค๋ฉด ๋๋ค.
import java.util.*;
class Solution {
public int removeElement(int[] nums, int val) {
int idx = 0;
for(int i=0;i<nums.length;i++){
if(nums[i]!=val){
nums[idx++] = nums[i];
}
}
return idx;
}
}
๊ฒฐ๊ณผ
๐ ํ๊ณ
๋๋ฒ์งธ ํ์ด ๋ฐฉ์์ ๊ฒฝ์ฐ, ์ง๊ด์ ์ผ๋ก ๋ ์ฌ๋ฆฌ์ง ๋ชปํ๋ค.
๋ฐฐ์ด์ ๊ธธ์ด๊ฐ ํ์ ์ ์ด๋ผ, ์ ๋ ฌ์ ์ฌ์ฉํด๋ ๋ฌธ์ ๊ฐ ์์์ง๋ง.
๋ฐฐ์ด ๋ฌธ์ ๋ฅผ ํ ๋, ๋๋ถ๋ถ O(N) ์ ํ์ด ๋ฐฉ๋ฒ์ ํฌ์ธํฐ๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋
ํ๋ฒ์ฏค์ ํฌ์ธํฐ ํ์ด ๋ฐฉ๋ฒ์ ๊ณ ๋ฏผํด๋ด์ผ๊ฒ ๋ค.