햄버거를 선택할 수 있는 거리만큼 리스트를 잘라서 비교하면 되지 않나 생각했던 문제
막혔던 부분은 첫번째 자리에서 앞뒤로 리스트를 빼올때 마이너스를 어떻게 처리하냐였다.
# 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'))
리스트에 인덱스가 넘어가지 않도록 하는 방법을 깨달았다
'백준' 카테고리의 다른 글
백준 14469번: 소가 길을 건너간 이유(파이썬) (0) | 2024.08.02 |
---|---|
백준 11724번: 연결 요소의 개수 (파이썬) (0) | 2024.07.10 |
백준 16948번: 데스 나이트 (파이썬) (0) | 2024.06.26 |
백준 2870번: 수학숙제 (파이썬) _리스트 출력하기 / for-else (0) | 2024.06.21 |
백준 2792번: 보석상자 (파이썬) (0) | 2024.06.19 |