CodingTest/LeetCode

[LeetCode] 485. Max Consecutive Ones, Easy

뜸부깅 2025. 3. 4. 17:31
반응형

1. 문제

  • 0과 1로 이루어진 배열이 주어질 때, 연속된 1이 가장 많이 나오는 횟수는?

2. 해결

type AccType = {max: number; value :number; prev: number | null}

function findMaxConsecutiveOnes(nums: number[]): number {
    
    const result = nums.reduce((acc: AccType, current) => {
        acc.value += current;
        
        if(current === 0 && acc.value !== 0) {
            acc.max = Math.max(acc.max, acc.value);
            acc.value = 0;
        }
        return acc
    }, {max: 0, value :0, prev: null})
    
    return Math.max(result.max, result.value);
};
  • 연속된 1을 찾아야 하니까 뭐 중간에서 끊고 어쩌고 할 수가 없을 거 같아서 단순히 반복하면서 누산기를 이용해 계산해줬다.