문제 링크
https://softeer.ai/practice/6279
문제 풀이
그리디하게 앞에서부터 사용할 수 있는 부품을 차례로 집는 것이
최댓값을 찾을 수 있는 방법이라 생각했고, 그 방법대로 깔끔하게 해결할 수 있었습니다.
n, k = map(int, input().split())
arr = list(input())
result = 0
for i in range(len(arr)):
if arr[i] == 'P':
for j in range(i - k, i + k + 1):
if 0 <= j < len(arr) and arr[j] == 'H':
arr[j] = 'U'
result += 1
break
print(result)
앞에서부터 리스트를 탐색하며 로봇의 위치를 찾고
로봇을 찾았으면 해당 로봇 위치를 기준으로 k 범위만큼 앞, 뒤로 탐색하며 부품을 찾습니다.
앞에서부터 탐색하며 부품을 찾았을 경우 추후 부품을 탐색할 때 걸리지 않도록 used라는 의미로 'U'로 변경해줍니다.
k의 범위가 10까지로 매우 작았기에 시간 초과 없이 가능했던 방법인 것 같습니다.