728x90
문제
오름차순으로 정렬되어 있는 nums1과 nums2라는 int 배열을 하나의 오름차순으로 정렬된 int 배열로 합칠 것
(nums1에 값을 저장할 것)
풀이
import java.util.*;
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
List<Integer> list = new ArrayList<>();
for (int i = 0; i < m; i++) {
list.add(nums1[i]);
}
for (int i = 0; i < n; i++) {
list.add(nums2[i]);
}
Collections.sort(list);
for (int i = 0; i < list.size(); i++) {
nums1[i] = list.get(i);
}
}
}
- ArrayList와 Colletions.sort() 사용
- ArrayList에 nums1과 nums2의 값을 전부 add한 후 Collections.sort() -> nums1 배열로 다시 옮김
- 시간복잡도 : O(N log N)
더 좋은 방법에 대한 고민
- nums1의 끝에 nums2를 합친 후 Arrays.sort() 사용
import java.util.*;
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
for (int i = m; i < m + n; i++) {
nums1[i] = nums2[i - m];
}
Arrays.sort(nums1);
}
}
'JAVA > Coding Test Study' 카테고리의 다른 글
[Easy] LeetCode - no.26 Remove Duplicates from Sorted Array : Java (0) | 2024.10.13 |
---|---|
[Easy] LeetCode - no.27 Remove Element : Java (0) | 2024.10.13 |
[Lv.2] 프로그래머스 - 주식가격 : Java (3) | 2024.09.01 |
[Lv.0] 프로그래머스 - 평행 : Java (0) | 2024.06.21 |
[Lv.0] 프로그래머스 - 겹치는 선분의 길이 : Java (0) | 2024.06.21 |