만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

고연전/연고전 기차놀이

면접 대비

시간 제한1초메모리 제한1024 MB

요약
K와 Y로 이루어진 문자열을 길이가 L 이하이고 K와 Y의 개수 차이가 1 이하인 연속 구간으로 나눌 때, 구간 수의 최솟값을 구합니다.
난이도

보통10점 중 5점

유형
동적 계획법, 슬라이딩 윈도우, 누적 합, 해시맵
정답자
아직 제출이 없습니다

문제

고려대학교와 연세대학교의 정기전인 고연전이 끝난 뒤 참살이길에 고려대와 연세대 학생이 총 NN명 모였다. 참살이길은 좁아서 학생들이 일렬로 서 있으며, 이들의 배열은 고려대생은 K, 연세대생은 Y로 표현된 길이 NN의 문자열로 주어진다.

학생들은 고연전 뒷풀이의 주요 행사 중 하나인 "기차놀이"를 위해 연속된 몇 개의 기차로 나뉘어야 한다. "기차"는 연속한 학생들을 모아 놓은 것이며, 전체 행렬을 몇 개의 기차로 분할한다. 뒷풀이는 두 학교 학생의 친목을 위한 행사이므로, 양교의 활발한 교류를 위해 각 기차에서 고려대 학생 수와 연세대 학생 수의 차이가 최대 1명이 되도록 나눈다.

기차가 너무 많으면 이동이 어려우므로 전체 행렬을 최소 개수의 기차로 나누려고 한다. 또한 기차가 너무 길면 참살이길의 교통이 혼잡해지므로, 각 기차의 길이는 LL을 넘지 않도록 한다.

이때 학생들의 배열이 주어지면, 위 조건을 만족하면서 전체 행렬을 나눌 수 있는 최소 기차 수를 구한다.

입력

첫 줄에 기차 행렬의 사람 수 NN과 각 기차의 최대 길이 LL이 공백으로 구분되어 주어진다.

두 번째 줄에는 기차 행렬이 길이 NN의 문자열로 주어진다. K는 고려대생을, Y는 연세대생을 의미한다.

출력

각 기차의 길이가 LL을 넘지 않으면서 전체 기차 행렬을 분할할 수 있는 최소 기차 수를 출력한다.

제한

  • 1≤N≤1051 \le N \le 10^5
  • 1≤L≤N1 \le L \le N

예제2

  1. 예제 1

    입력
    7 5
    KKYYYKK
    
    예상 출력
    2
    
  2. 예제 2

    입력
    8 4
    KKKYKYYY
    
    예상 출력
    4