백준

백준 19941번: 햄버거 분배 (파이썬)

inns21 2024. 7. 3. 09:31

 

햄버거를 선택할 수 있는 거리만큼 리스트를 잘라서 비교하면 되지 않나 생각했던 문제

막혔던 부분은 첫번째 자리에서 앞뒤로 리스트를 빼올때 마이너스를 어떻게 처리하냐였다.

# N = 사람, K = 먹을 수 있는 거리
N, K = map(int, input().split())

str = list(input())
for i in range(len(str)):
  # 사람이 나왔을 때만 리스트 탐색
  if str[i] == 'P':
    # 음수가 나올 경우를 대비
    start = max(0, i - K)
    # 인덱스를 넘어갈 경우를 대비
    end = min(len(str), i + K + 1)
    
    for j in range(start, end):
      if str[j] == 'H':
        str[j] = 'A'
        break

print(str.count('A'))

 

리스트에 인덱스가 넘어가지 않도록 하는 방법을 깨달았다