CodingTest/LeetCode

[LeetCode] 1456. Maximum Number of Vowels in a Substring of Given Length, Medium

뜸부깅 2025. 4. 16. 15:24
반응형

1. 문제

  • 문자열 s와 정수 k가 주어질 때, k 길이 문자열 내에 가장 많은 모음이 등장하는 횟수를 반환하라.

2. 해결

function maxVowels(s: string, k: number): number {

    const vowels = 'aeiou';

    let max = Number.MIN_SAFE_INTEGER;
    let count = 0;
    let left = 0, right = 0;

    while(right < s.length) {
        if(vowels.includes(s[right])) count++;
        if(right - left === k -1) {
            max = Math.max(max, count)

            if(vowels.includes(s[left++])) count--;
        }

        right++;
    }  

    return max;
};
  • 연속된 구간 내 모음의 수가 중요한 것이므로 두 포인터는 앞에서 부터 시작.
  • 모음을 만나면 count를 증가시키며 right 증가.
  • k길이에 도달하면, max를 갱신하고 left 감소.
  • 이 때, left가 모음이면 count도 감소.