차곡차곡

[BOJ/Python] 백준 19941번 - 햄버거 분배 본문

CS/Algorithm

[BOJ/Python] 백준 19941번 - 햄버거 분배

sohy 2024. 7. 11. 23:04

백준 #19941 햄버거 분배

https://www.acmicpc.net/problem/19941

 

n, k = map(int, input().split())
info = input()
eat = [True] * n
res = 0

for i in range(n):
  if info[i] == 'P':
    # 왼쪽 범위 탐색
    for j in range(k, 0, -1):
      if i - j >= 0 and info[i - j] == 'H' and eat[i - j]:
        res += 1
        eat[i - j] = False
        break
    else:
      # 오른쪽 범위 탐색
      for j in range(1, k + 1):
        if i + j < n and info[i + j] == 'H' and eat[i + j]:
          res += 1
          eat[i + j] = False
          break

print(res)

그리디 문제로, 사람을 기준으로 (-k, +k) 범위 안에 있는 햄버거 중 가장 좌측에 있는 것을 먹는다.

 


 

  • for 루프가 break로 중간에 종료되지 않고 끝까지 실행되었을 때, else 블록 실행
Comments