[백준] 19941번 : 햄버거 분배 (Python)

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문)
  • 찾는 범위는 음수나 리스트 범위를 넘으면 안됨