알고리즘/그리디
[백준] 19941번 : 햄버거 분배 (Python)
SIII
2023. 3. 16. 02:57
https://www.acmicpc.net/problem/19941
19941번: 햄버거 분배
기다란 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 $K$ 이하인 햄버거를 먹을 수 있다. 햄버거 사람 햄버거 사람 햄버거 사
www.acmicpc.net
💡 문제 접근
- 최대한 왼쪽에 있는 햄버거를 우선적으로 먹어야함
- 햄버거 먹으면 다른 문자로 바꿔주기
💡 내 코드
# 햄버거 분배
n,k = map(int,input().split())
hp =list(input())
cnt=0
for i in range(n):
for j in range(i-k,i+k+1): # 거리 안에 있는 햄버거 찾기
if hp[i]=='P': # 현재 위치가 사람일때
if j<n and j>=0:
if hp[j] == 'H': # 햄버거 찾으면 해당 H 변경
hp[j] = '0'
cnt+=1
break
print(cnt)
🚨 범위가 헷갈렸음
- 현재 위치를 기준으로 양쪽 k 거리 찾아야함 i-k 부터 i+k+1까지 (for문)
- 찾는 범위는 음수나 리스트 범위를 넘으면 안됨