기록하고 까먹지 말기

1994 본문

전공/백준

1994

yha97 2022. 11. 23. 20:06

날짜 : 2022. 11. 23

사용 언어 : python

 

문제

 

코드

import sys

n, k = map(int, sys.stdin.readline().split())
a = [False] * n
s = str(sys.stdin.readline().rstrip())
cnt = 0
for i in range(len(s)):
    if s[i] == "H":
        a[i] = True  # 햄버거인 경우

for i in range(n):
    if s[i] == "P":
        for j in range(i - k, i + k + 1):
            if j in range(n) and a[j]:  # 범위에 포함되고 해당 햄버거를 먹을 수 있는 경우
                a[j] = False  # 햄버거 먹음
                cnt += 1
                break
print(cnt)

 

 

풀이

- 문자열 입력 후 "H"가 입력된 인덱스에 True를 입력한다.(햄버거 존재)

- 그 후 for문을 돌리면서 "P"가 나타날 때마다 햄버거를 먹을 수 있는지 확인하는 for문을 돌려준다.

- 해당 for문은 i 자리에서 왼쪽으로 k만큼 떨어진 위치부터 시작해서 1씩 증가하면서 i+k까지 탐색한다.

(햄버거를 먹을 수 있는 인원을 최대한 많이 찾기 위함)

- 햄버거를 먹을 수 있다면 해당 햄버거의 인덱스 값을 False로 바꾼 후 cnt를 증가한 다음 for문을 탈출한다.

 

 

알게된 점

 

 

참고 사이트

 

'전공 > 백준' 카테고리의 다른 글

11727  (0) 2022.11.23
9009  (0) 2022.11.23
10844  (0) 2022.11.22
1502  (0) 2022.11.22
2644  (0) 2022.11.21