기록하는 습관을 들이자

[ leetcode ] Get Maximum in Generated Array 본문

알고리즘/Leetcode

[ leetcode ] Get Maximum in Generated Array

myeongmy 2021. 1. 18. 19:43
반응형

 

문제

leetcode.com/problems/get-maximum-in-generated-array/

 

Get Maximum in Generated Array - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

문제 풀이

 

문제에 주어진 규칙대로 배열을 하나 생성한 뒤, 해당 배열에서 가장 큰 값을 리턴해주는 메소드를 작성하면 된다. 문제에 주어진 규칙을 살펴보면,

 

nums[0] = 0;

nums[1] = 1;

1) 인덱스가 짝수인 경우

nums[i] = nums[i/2];

2) 인덱스가 홀수인 경우

nums[i] = nums[i/2] + nums[i/2+1];

 

다음과 같다. 주어진 메소드의 파라미터로 n이 주어지면, n+1 크기의 배열을 하나 선언한 뒤, 해당 규칙에 맞추어 배열 값을 생성한다. 그리고 Arrays 라이브러리에 내장된 sort 메소드를 이용하여 해당 배열을 정렬해준 뒤, 가장 큰 값을 리턴해주면 끝!

 

 

코드

class Solution {
    public int getMaximumGenerated(int n) {
        int [] arr = new int[n+1];
        arr[0] = 0;
        
        if(n > 0)
            arr[1] = 1;
        
        for(int i=2;i<=n;i++){
            if(i % 2 == 0){   //when number is even
                arr[i] = arr[i/2];
            }else{  //when number is odd
                arr[i] = arr[i/2] + arr[i/2+1];
            }
        }
        
        Arrays.sort(arr);
        
        return arr[arr.length-1];
    }
}
반응형
Comments