Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- simulation
- geometry
- Class
- 코딩테스트
- SQL
- string
- implement
- Number Theory
- greedy
- Binary Search
- 코테
- Data Structure
- Math
- array
- two pointers
- dynamic programming
- java
- Binary Tree
- 구현
- Method
- 파이썬
- bit manipulation
- Stack
- Tree
- 자바
- database
- sorting
- Counting
- Matrix
- hash table
Archives
- Today
- Total
코린이의 소소한 공부노트
[LeetCode/Easy] 27. Remove Element 본문
1. Input
1) int 배열 nums
2) 정수 val
2. Output
1) nums에서 val을 제거한 후 남은 숫자의 개수
2) output을 반환받은 custom judge가 맞게 풀었는지 확인하는 방법
int[] nums = {...}; // 첫번째 input
int val = ...; // 두번째 input
int[] expectedNums = {...}; // 정답 배열. 오름차순으로 정렬되어 있는 상태
int k = removeElement(nums, val); // 내가 작성한 코드를 불러와서 반환값을 k에 저장
assert k == expectedNums.length; // 반환값이 정답 배열의 길이와 같아야 한다.
sort(nums, 0, k); // nums의 맨 앞부터 k개의 요소를 정렬한다.
for (int i = 0; i < actualLength; i++) {
assert nums[i] == expectedNums[i]; // 내가 푼 것과 정답이 맞는지 비교한다.
}
3. Constraint
1) 0 <= nums.length <= 100
2) 0 <= nums[i] <= 50
3) 0 <= val <= 100
4) 제거 후 남은 수들의 정렬은 하지 않아도 상관 없지만, nums의 맨 앞부터 채워놔야 한다.
5) 맨 앞부터 채우고 남은 뒷부분은 어떤 숫자로 채워도 상관없다.
6) 추가 메모리를 쓰지 않고 O(1)으로 문제를 풀어야 한다.
4. Example
Input: nums={3,2,2,3}, val=3 -> Output: 2, 이때의 nums={2,2,_,_}
설명: 처음 nums에서 val인 3을 제거하면 {_, 2, 2, _}가 되는데, 이때 nums의 맨 앞부터 남은 숫자를 채워야하므로 {2, 2, _, _}가 되어야 한다. 숫자가 2개가 남았으므로 2를 반환한다.
5. Code
1) 첫 코드(2022/12/02)
int k = nums.length, index = 0;
while(index<nums.length){
if(nums[index]!=val){
index++;
}else{
for(int i=index+1 ; i<k ; i++)
nums[i-1] = nums[i];
nums[k-1] = -1; k--;
} // else
} // while
return k;
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[LeetCode/Easy] 566. Reshape the Matrix (0) | 2022.12.04 |
---|---|
[프로그래머스/Lv.2] 점프와 순간 이동 (0) | 2022.12.02 |
[LeetCode/Easy] 561. Array Partition (0) | 2022.12.02 |
[LeetCode/Easy] 557. Reverse Words in a String III (0) | 2022.12.02 |
[LeetCode/Easy] 520. Detect Capital (0) | 2022.12.02 |