๐ก ์กฐ๊ฑด
- ์ํ์ ๊ธธ์ด๊ฐ N์ด๋ค.
์ฌ๋๋ค(P)์ ์์ ์ ์์น์์ ๊ฑฐ๋ฆฌ๊ฐ K ์ดํ์ธ ํ๋ฒ๊ฑฐ๋ฅผ ๋จน์ ์ ์๋ค.
1 <= N <= 20,000
1 <= K <= 10
- ํ๋ฒ๊ฑฐ๋ฅผ ๋จน์ ์ ์๋ ์ฌ๋์ ์ต๋ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑ.
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ ์ ํ์ ๋ฌธ์
๐ฅ ์์ค ์ฝ๋
from sys import stdin
n, k = map(int, stdin.readline().split())
arr = list(stdin.readline().rstrip())
res = 0
for i in range(n):
if arr[i] == 'P':
for j in range(i - k, i + k + 1):
if -1 < j < n:
if arr[j] == 'H':
arr[j] = '-'
res += 1
break
print(res)
๐ ์์ ๋ฐ ์คํ๊ฒฐ๊ณผ
์์
20 1
HHPHPPHHPPHPPPHPHPHP
์คํ๊ฒฐ๊ณผ
8
โจ๏ธ ๋ฌธ์ ํ์ด
- ์ํ์ ๊ธธ์ด N๊ณผ ํ๋ฒ๊ฑฐ๋ฅผ ๋จน์ ์ ์๋ ๊ฑฐ๋ฆฌ K ๋ฅผ ์
๋ ฅ๋ฐ๋๋ค.
- N ๊ธธ์ด์ ํ๋ฒ๊ฑฐ์ ์ฌ๋์ ์์น์ ์ ๋ณด๊ฐ ๋ด๊ธด ๋ฌธ์์ด์ ์
๋ ฅ๋ฐ์ arr ๋ฆฌ์คํธ์ ์ ์ฅํ๋ค.
- n ๋งํผ arr ๋ฆฌ์คํธ๋ฅผ ์ํํ๋ฉด์ arr[i]๊ฐ ์ฌ๋์ผ ๋, i - k ๋ถํฐ i + k + 1 ๊น์ง ์ํํ๋ค
i๋ฒ์งธ์ ์์นํ ์ฌ๋์ด i - k ๋ถํฐ i + k + 1 ๊ฑฐ๋ฆฌ์ ํ๋ฒ๊ฑฐ๋ฅผ ๋จน์ ์ ์๊ธฐ ๋๋ฌธ์.
- 0 <= j < n ์ ์กฐ๊ฑด์ ๋ง์กฑํ๊ณ arr[j]๊ฐ ํ๋ฒ๊ฑฐ๋ผ๋ฉด arr์ ํด๋น ๋ฒํธ๋ฅผ ์ด๋ฏธ ๋จน์ ํ์๋ก - ๋ก ๋ณ๊ฒฝํ๊ณ res + 1, break
๐พ ๋๋์
- ๊ทธ๋ฆฌ๋๋ ๊ฐ๋
์์ฒด๋ก๋ ์ดํด๊ฐ ์ฌ์ฐ๋ ๋ง์ ๋ฌธ์ ๋ฅผ ํ๋ฉด ๋จธ๋ฆฌ์์์ ๊ผฌ์ฌ๋ฒ๋ฆฌ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
- ์์ผ๋ก ๊ทธ๋ฆฌ๋๋ฅผ ํ ๋๋ ๋ง์์ ๋ด๋ ค๋๊ณ ์ฒ์ฒํ ์๊ฐํด๋ณด๋ ์ต๊ด์ ๊ธธ๋ฌ์ผ๊ฒ ๋ค