■ 문제

두 개의 배열이 주어질 때 이를 합치고 중앙값을 반환하는 함수를 구현하는 문제이다.
■ 풀이
이 문제는 중앙값을 구하는 것이 핵심일 것 같다.
필자는 다음과 같은 방식으로 구현했다.
- 리스트로 배열 합치기
- 리스트 정렬
- 중앙값 구하기
여기서 중앙값을 구할 땐 길이의 홀수/짝수 여부 두가지 케이스로 생각했다.
- 짝수일 때 - ([size / 2] + [size / 2 -1]) / 2.0
- 홀수일 때 - [size / 2] / 2.0
class Solution {
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
double answer = 0;
ArrayList<Integer> lst = new ArrayList<>();
for(int e : nums1) lst.add(e);
for(int e : nums2) lst.add(e);
Collections.sort(lst);
int size = lst.size();
if(size % 2 ==0){
answer = (lst.get(size/2) + lst.get(size/2-1)) / 2.0;
}else{
answer = lst.get(size/2) * 1.0;
}
return answer;
}
}
'dev > algorithm' 카테고리의 다른 글
| [LeetCode] 13. Roman to Integer (0) | 2025.02.12 |
|---|---|
| [LeetCode] 3. Longest Substring Without Repeating Characters (0) | 2025.02.09 |
| [LeetCode] 1. Two Sum (0) | 2025.02.09 |
| [LeetCode] 2364. Count Number of Bad Pairs (0) | 2025.02.09 |
| [CodeSignal] ZigZag - Java (0) | 2025.02.08 |