Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 문자열에서 특정 문자의 최장 연속 등장 횟수 구하기

문제 설명

첫 번째 인자로 문자열을, 두 번째 인자로 단일 문자 하나를 받는 JavaScript 함수를 작성해야 합니다.

이 함수는 지정된 문자가 문자열 안에서 연속적으로 나타나는 가장 긴 횟수를 세어 그 값을 반환해야 합니다.

예제 코드

다음은 전체 구현 코드입니다.

const str = 'abcdaaadse';
const char = 'a';
const countChars = (str = '', char = '') => {
    const arr = str.split('');
    let c = 0, max = 0;
    for (let i = 0; i < arr.length; i++) {
        if (arr[i] === char) {
            c += 1;
            if (c > max) {
                max = c;
            };
        } else {
            if (c > max) {
                max = c;
            };
            c = 0;
        };
    };
    return max;
};
console.log(countChars(str, char));

출력 결과

3

코드 동작 원리

위 코드의 핵심 로직을 단계별로 살펴보겠습니다.

  • 문자열 분리: split('')을 사용해 문자열을 개별 문자 배열로 변환합니다.
  • 카운터 초기화: 현재 연속 횟수를 저장하는 c와 최댓값을 저장하는 max를 0으로 초기화합니다.
  • 순회하며 비교: 배열을 순회하면서 현재 문자가 찾고자 하는 문자와 일치하면 c를 1씩 증가시키고, 필요하면 max를 갱신합니다.
  • 연속 끊김 처리: 일치하지 않는 문자를 만나면 지금까지의 c 값과 max를 비교한 뒤, c를 0으로 초기화해 새로운 연속 구간을 시작합니다.
  • 결과 반환: 모든 순회가 끝나면 max를 반환합니다.

예제 문자열 'abcdaaadse'에서 문자 'a'는 마지막에 'aaa'로 3번 연속 등장하므로, 결과값은 3이 됩니다.