728x90

 


 

이 문제의 핵심은 사람은 K만큼 "왼쪽"에 떨어져 있는 햄버거를 먹는 것이다.

 

사람이 만약 맨 오른쪽에 있다면 그 전 사람이 본인의 오른쪽 햄버거를 먹었다면 가장 오른쪽 사람이 먹을 수 있지만 못 먹는 경우가 생길 수 있기 때문이다. 

 

그리고 앞으로 input을 쓸 때 시간을 줄기이 위해 import sys 를 통해 input = sys.stidn.readline 으로 쓰는 습관을 들여야겠다.

 


import sys
input = sys.stdin.readline

n, k = map(int,input().split())
S = input().rstrip()
eat_list = list(S)
cnt = 0

for i in range(len(eat_list)):
    if eat_list[i] == "P": #만약 사람이 나온다면
        for j in range(i-k, i+k+1): #사람에서 k만큼 왼쪽에서 k만큼 오른쪽을 살펴본다.
            if 0 <= j < n and eat_list[j] == "H": #만약 사람이 맨 처음에 나온다면 j가 -1이 될수도 있으므로 and 좌측조건 추가
                cnt += 1
                eat_list[j] = "0"
                break #두번째 for문에서 빠져나온다.

print(cnt)
        

 

복사했습니다!