
정수 배열 nums와 정수 val이 주어지면 nums에서 val의 모든 발생을 제거합니다. 요소의 순서는 변경될 수 있습니다. 그런 다음 nums에 대해 val과 같지 않은 요소의 수를 반환합니다.
nums에서 val과 같지 않은 요소의 수를 k라고 가정하면, 수락되기 위해 다음 작업을 수행해야합니다:
예시 1:
입력: nums = [3,2,2,3], val = 3
출력: 2, nums = [2,2,_,_]
설명: 함수는 k = 2를 반환해야 하며 nums의 처음 두 요소는 다음과 같습니다. 2.
반환된 k 외에 무엇을 남겨두는지는 중요하지 않습니다(따라서 밑줄로 표시됩니다).
예시 2:
입력: nums = [0,1,2,2,3,0,4,2], val = 2
출력: 5, nums = [0,1,4,0,3,_,_,_]
설명: 함수는 k = 5를 반환해야 하며 숫자의 처음 5개 요소는 0, 0, 1, 3, 4를 포함해야 합니다.
5개 요소는 어떤 순서로든 반환될 수 있습니다.
반환된 k 외에 무엇을 남겨두는지는 중요하지 않습니다(따라서 밑줄로 표시됩니다).
nums배열을 반복문으로 돌면서 정수val와 비교합니다.val와 다른 정수를 찾으면 nums 배열 첫번째 index에 데이터를 저장합니다.val와 다른 정수를 찾으면 두번째 index에 저장하는 방식으로 코드를 작성합니다.k를 선언하여 정수val와 다른 정수이면 1씩 증가합니다. int k = 0;
int index = 0;
for(nums배열 처음부터 끝까지 탐색){
if(nums[i] != val){
k++;
nums[index++] = num[i];
}
}
return k;
class Solution {
public int removeElement(int[] nums, int val) {
int k = 0;
int index = 0;
for(int i =0; i < nums.length; i++){
if(nums[i] != val){
k++;
nums[index++] = nums[i];
}
}
return k;
}
}
class Solution {
public int removeElement(int[] nums, int val) {
int k = 0;
for(int i =0; i < nums.length; i++){
if(nums[i] != val){
nums[k++] = nums[i];
}
}
return k;
}
}
if(nums[i] != val) 만족하면 index변수와 k변수를 같이 증가시키고 있습니다. 이를 k변수 하나만 사용하여 동작하도록 하였습니다.