😎풀이

  1. nums 순회
    1-1. 현재 요소와 이전 요소의 부호가 상이한 경우, wiggle한 상태로 판별하고 카운트
    1-2. 역부호로 부호를 갱신하여 탐색 반복
  2. wiggle한 수 반환
function wiggleMaxLength(nums: number[]): number {
    if(nums.length === 1) return 1
    let wiggles = 1
    let prevIsAsc = 0
    for(let i = 0; i < nums.length - 1; i++) {
        const curIsAsc = Math.sign(nums[i + 1] - nums[i])
        if(curIsAsc === 0) continue
        if(prevIsAsc === curIsAsc) continue
        wiggles++
        prevIsAsc = curIsAsc
    }
    return wiggles
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글