[LeetCode] 27. Remove Element - Java[자바]

doxxx·2023년 8월 22일
0

LeetCode

목록 보기
2/25
post-thumbnail

링크

문제

정수 배열 nums와 정수 val이 주어졌을 때, nums에서 val이 포함된 모든 항목을 제자리에서 제거합니다. 요소의 순서는 변경될 수 있습니다. 그런 다음 nums에서 val과 같지 않은 요소의 수를 반환합니다.

nums에서 val과 같지 않은 요소의 개수가 k라고 가정할 때, 이를 허용하려면 다음과 같은 작업을 수행해야 합니다:

nums의 처음 k 요소에 val과 같지 않은 요소가 포함되도록 배열 nums를 변경합니다. nums의 나머지 요소는 nums의 크기만큼 중요하지 않습니다.

k를 반환합니다.

int[] nums = [...]; // 입력 배열  
int val = ...; // 제거할 값  
int[] expectedNums = [...]; // 올바른 길이의 예상 답안.  
// val과 같은 값이 없는 상태로 정렬됩니다.  
  
int k = removeElement(nums, val); // 구현을 호출합니다.  
  
assert k == expectedNums.length;  
sort(nums, 0, k); // nums의 처음 k 요소를 정렬합니다.  
for (int i = 0; i < actualLength; i++) {  
assert nums[i] == expectedNums[i];  
}

위의 검증이 모두 통과되어야 합니다.

풀이

import java.util.*;  
  
class Solution {  
  
    public int removeElement(int[] nums, int val) {  
        List<Integer> list = new ArrayList<>();  
        for (int num : nums) {  
            if (num == val) {  
                continue;  
            }  
            list.add(num);  
        }  
        for (int i = 0; i < list.size(); i++) {  
            nums[i] = list.get(i);  
        }  
        return list.size();  
    }  
}

val에 해당 하는 값은 넘기고 list에 담은후 다시 처음부터 담았다.

0개의 댓글