https://leetcode.com/problems/move-zeroes/description/
별도의 array 만들기 없이 in-place로 만드는 것이 조건
44ms
class Solution {
public void moveZeroes(int[] nums) {
for(int i = 0; i < nums.length; i++) {
if (nums[i] == 0) {
int index = i;
while(++index < nums.length) {
if (nums[index] != 0) {
nums[i] = nums[index];
nums[index] = 0;
break;
}
}
}
}
}
}
정직한 풀이(바보같이..)라고 해야할까요..
배열 요소가 0이면 0이 아닌 요소가 있는 index를 찾아서 대체하고 해당 index의 값은 0으로 만들도록 했음
가장 빠른 풀이를 보니 0이 아닌 요소를 배열 앞으로 가지고 온 후 나머지를 0으로 채운다.
2ms
class Solution {
public void moveZeroes(int[] nums) {
int index = 0;
for(int i = 0; i < nums.length; i++) {
if (nums[i] != 0) {
nums[index++] = nums[i];
}
}
for(int i = index; i < nums.length; i++) {
nums[i] = 0;
}
}
}
'코딩테스트' 카테고리의 다른 글
75. Sort Colors (0) | 2024.02.18 |
---|---|
268. Missing Number (0) | 2024.02.17 |
100. Same Tree (0) | 2024.02.17 |
409. Longest Palindrome (0) | 2024.02.17 |
9. Palindrome Number (0) | 2024.02.16 |