본문 바로가기

백준

백준19941 - 햄버거 분배

www.acmicpc.net/problem/19941

 

19941번: 햄버거 분배

기다란 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 $K$ 이하인 햄버거를 먹을 수 있다. 햄버거 사람 햄버거 사람 햄버거 사

www.acmicpc.net

재밌는 문제였다. 왼쪽을 기준으로는 먼 쪽에 있는 햄버거를 찾고 왼쪽에서 먹을 수 있는 햄버거가 없다면 오른쪽 기준 가까운 쪽에 있는 햄버거를 먹으면 되는 문제이다.

N, K = map(int, input().split(' '))
array = [] # 0은 햄버거 먹은 곳, 1은 햄버거 존재, 2는 사람
people = []
str = input()
ans = 0

for i in range(len(str)):
  if str[i] == 'H':
    array.append(1)
  else:
    array.append(2)
    people.append(i)

for p in people:
  check = False
  left = p - K - 1
  right = p
  
  for i in range(0, K):
    left = left + 1
    if left >= 0 and array[left] == 1:
      ans += 1
      array[left] = 0
      check = True
      break
  
  if check:
    continue
  else:
    for i in range(1, K + 1):
      right = right + 1
      if right <= N - 1 and array[right] == 1:
        ans += 1
        array[right] = 0
        break
  
print(ans)