Algorithm
백준 알고리즘 파이썬(Python) 19941번 햄버거분배
🤖 Play with Android 🤖
2021. 6. 3. 13:44
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)