[LeetCode] 1646. Get Maximum in Generated Array

Chobby·6일 전
1

LeetCode

목록 보기
568/582

😎풀이

  1. n의 길이를 갖는 배열 생성
  2. 전제 조건에 맞게 0번째와 1번째는 각 0과 1 할당
  3. 몫과 나머지에 따라 i번째의 요소에 값을 할당하며 최댓값 확인
    3-1. 현재 인덱스가 짝수라면, 2로 나누었을 때의 몫에 해당하는 인덱스의 값을 할당
    3-2. 현재 인덱스가 홀수라면, 1의 조건에 그 다음 요소의 값을 더해 할당
  4. 최댓값 반환
function getMaximumGenerated(n: number): number {
    let maxNum = 0
    const nums = new Array(n).fill(0)
    nums[0] = 0
    nums[1] = 1
    if(n <= 1) return nums[n]
    for(let i = 2; i <= n; i++) {
        const quot = Math.floor(i / 2)
        const remain = i % 2
        nums[i] = nums[quot]
        if(remain) nums[i] += nums[quot + 1]
        maxNum = Math.max(maxNum, nums[i])
    }
    return maxNum
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글