문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
인덱스가 0부터 시작하는 정수 배열 nums가 주어지고, 길이는 2의 배수이다.
nums에 다음 알고리즘을 적용해라.
알고리즘을 적용하고 nums에 남은 마지막 숫자를 반환해라.
#1
Input: nums = [1, 3, 5, 2, 4, 8, 2, 2]
Output: 1
Explanation: 다음 배열은 알고리즘을 반복적으로 적용한 결과이다.
1단계: nums = [1, 5, 4, 2]
2단계: nums = [1, 4]
3단계: nums = [1]
1은 마지막에 남은 숫자라서, 1을 반환한다.
#2
Input: nums = [3]
Output: 3
Explanation: 3은 이미 마지막에 남은 숫자라서, 3을 반환한다.
class Solution {
public int minMaxGame(int[] nums) {
if(nums.length == 1){
return nums[0];
}
int[] newNums = new int[nums.length / 2];
int count = 0;
int index = 0;
for(int i = 0; i < nums.length - 1; i += 2){
if(count % 2 == 0){
newNums[index] = Math.min(nums[i], nums[i + 1]);
}else{
newNums[index] = Math.max(nums[i], nums[i + 1]);
}
count++;
index++;
}
return minMaxGame(newNums);
}
}