문제링크
https://www.acmicpc.net/problem/19941
19941번: 햄버거 분배
기다란 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 $K$ 이하인 햄버거를 먹을 수 있다. 햄버거 사람 햄버거 사람 햄버거 사
www.acmicpc.net
코드
input = __import__('sys').stdin.readline
n,k = map(int,input().split())
data = input()
visited = [False for _ in range(n)]
cnt = 0
for i in range(n):
if data[i] =='P':
for j in range(i-k,i+k+1):
if j<0 or j>=n:continue
if data[j] =='H' and not visited[j]:
visited[j] = True
cnt+=1
break
print(cnt)
문제풀이
사람일 경우(data[i] == 'P') 자신의 위치에서 거리가 k이하인 데이터를 모두 확인한다.
다른 사람이 먹기로 한 햄버거인지 확인하기 위해 visited 배열을 이용한다.
다른 사람이 먹지 않을 햄버거일 경우(data[j] =='H' and not visited[j] ) cnt를 증가시킨다.
'Koala - 11기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/python] 11256번 사탕 (0) | 2023.09.04 |
---|---|
[백준/Java] 19941 햄버거 분배 (1) | 2023.09.03 |
[백준/Python] 1461번 : 도서관 (0) | 2023.09.03 |
[백준/python] 20937번: 떡국 (0) | 2023.09.03 |
[백준 / C++] 2872번 우리집엔 도서관이 있어 (0) | 2023.09.03 |