반응형
https://leetcode.com/problems/remove-element/
2. 2022/04/26 시도
소요시간: 3분
class Solution {
public int removeElement(int[] nums, int val) {
int index = 0;
for (int i=0; i<nums.length; i++) {
if (nums[i] == val) {
continue;
}
nums[index++] = nums[i];
}
return index;
}
}
풀이 접근 과정
같은 숫자일 때는 넘어가고 아닐 때는 index를 증가시켜주면서 대입한다.
느낀점
- 푼지 며칠 안되었는데 그래도 그때보다 코드가 더 깔끔해져서 좋다.
1. 2022.04.16 시도
소요시간: 30분
class Solution {
public int removeElement(int[] nums, int val) {
int counter = 0;
for (int i=0; i<nums.length-counter;) {
if (nums[i+counter] == val) {
counter++;
continue;
}
nums[i] = nums[i+counter];
i++;
}
return nums.length-counter;
}
}
풀이 접근 과정
제거할 숫자크기만큼 리턴 길이를 정해주기위해 counter를 세팅한다.
인덱스를 순회하면서 val이랑 같은 경우는 제거한 숫자 갯수인 counter만 증가시키고 리턴한다.
제거할 숫자가아니면 세팅을 해주고 하나씩 인데스를 더해준다.
느낀점
- 알고리즘을 짤때는 counter와 배열에 값을 세팅해주는걸 나누었다. 그렇게 하는게 헷갈리지 않는다.
- 한번에 로직을 짜려다가 오히려 시간이 많이 걸렸다.
알고리즘 정리노트: .leetcode(알고리즘 문제풀이 접근)
반응형
'알고리즘 풀이' 카테고리의 다른 글
.leetcode(487. Max Consecutive Ones II) (0) | 2022.04.26 |
---|---|
.leetcode(1051. Height Checker) (0) | 2022.04.26 |
.leetcode(905. Sort Array By Parity) (0) | 2022.04.25 |
.leetcode(283. Move Zeroes) (0) | 2022.04.25 |
.leetcode(26. Remove Duplicates from Sorted Array) (0) | 2022.04.25 |