19941번: 햄버거 분배
기다란 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 $K$ 이하인 햄버거를 먹을 수 있다. 햄버거 사람 햄버거 사람 햄버거 사
www.acmicpc.net
재밌는 문제였다. 왼쪽을 기준으로는 먼 쪽에 있는 햄버거를 찾고 왼쪽에서 먹을 수 있는 햄버거가 없다면 오른쪽 기준 가까운 쪽에 있는 햄버거를 먹으면 되는 문제이다.
N, K = map(int, input().split(' '))
array = [] # 0은 햄버거 먹은 곳, 1은 햄버거 존재, 2는 사람
people = []
str = input()
ans = 0
for i in range(len(str)):
if str[i] == 'H':
array.append(1)
else:
array.append(2)
people.append(i)
for p in people:
check = False
left = p - K - 1
right = p
for i in range(0, K):
left = left + 1
if left >= 0 and array[left] == 1:
ans += 1
array[left] = 0
check = True
break
if check:
continue
else:
for i in range(1, K + 1):
right = right + 1
if right <= N - 1 and array[right] == 1:
ans += 1
array[right] = 0
break
print(ans)
'백준' 카테고리의 다른 글
백준2206 - 벽 부수고 이동하기 (0) | 2021.04.20 |
---|---|
백준12852 - 1로 만들기2 (0) | 2021.04.14 |
프로그래머스-월간 코드 챌린지 시즌1-두 개 뽑아서 더하기 (0) | 2021.04.12 |
백준 2653 - 안정된 집단 (0) | 2021.01.27 |
백준16922 - 로마 숫자 만들기 (0) | 2021.01.26 |