Koala - 11기/코딩테스트 준비 스터디

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

긍살:D 2023. 9. 3. 23:38

문제링크

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를 증가시킨다.