๐๋ฌธ์ ํ์ํ๊ธฐ
- ๊ธธ์ด N์ธ ๋ฒค์น ๋ชจ์์ ์ํ์ ์ฌ๋๋ค๊ณผ ํ๋ฒ๊ฑฐ๊ฐ ๋จ์ ๊ฐ๊ฒฉ์ผ๋ก ๋์ฌ์๋ฆ
- ์ฌ๋๋ค์ ์์ ์ ์์น์์ ๊ฑฐ๋ฆฌ๊ฐ K ์ดํ์ธ ํ๋ฒ๊ฑฐ๋ฅผ ๋จน์ ์ ์์
- ์ํ์ ๊ธธ์ด N, ํ๋ฒ๊ฑฐ๋ฅผ ์ ํํ ์ ์๋ ๊ฑฐ๋ฆฌ K, ์ฌ๋๊ณผ ํ๋ฒ๊ฑฐ์ ์์น๊ฐ ์ฃผ์ด์ก์ ๋, ํ๋ฒ๊ฑฐ๋ฅผ ๋จน์ ์ ์๋ ์ฌ๋์ ์ต๋ ์
ํด๋น ๋ฌธ์ ๋ '์ต๋ํ ๋ง์ ์ฌ๋์ด ํ๋ฒ๊ฑฐ๋ฅผ ๋จน์ ์ ์๋๋ก ํ๋ ๋ฐฉ๋ฒ'์ ์ฐพ๋ ๊ฒ์ด ํต์ฌ์ด๋ค. ์ผ์ชฝ ์ฌ๋๋ถํฐ ๋จน์ ํ๋ฒ๊ฑฐ๋ฅผ ์ ํํ ๋, ์ต๋ํ ๋ ๋ง์ด ๋ค์ ๋จ์ ์ฌ๋๋ค์ด ํ๋ฒ๊ฑฐ๋ฅผ ๋จน์ ์ ์๋๋ก ์ ํํ๋ฉด ๋๋ค. ์ฆ, ๋งจ ์ ์ฌ๋๋ถํฐ ๋ง์ง๋ง ์ฌ๋๊น์ง ๊ทธ๋ฆฌ๋ํ๊ฒ ํ๋ฒ๊ฑฐ๋ฅผ ์ ํํ๋ฉด ๋๋ค.
๋งจ ์ผ์ชฝ ์ฌ๋๋ถํฐ ํ๋ฒ๊ฑฐ๋ฅผ ๋จน๋ ๊ฒฝ์ฐ, ๋ท์ฌ๋์ด ์ ํํ ์ ์๋ ํ๋ฒ๊ฑฐ๋ฅผ ์ต๋ํ ๋ง์ด ๋จ๊ธฐ๋ ๋ฐฉ๋ฒ์ 'ํ๋ฒ๊ฑฐ๋ฅผ ์ ํ ๊ฐ๋ฅํ ๊ตฌ๊ฐ์์ ๋งจ ์ผ์ชฝ์ ๋์ธ ํ๋ฒ๊ฑฐ๋ฅผ ๋จน๋ ๊ฒ'์ด๋ค. ์๋ฅผ ๋ค์ด K๊ฐ 2์ด๊ณ , ํ๋ฒ๊ฑฐ์ ์ฌ๋์ด HHHPPPH์ ๊ฐ์ด ๋์ด๋์ด ์์ผ๋ฉด ์ฒซ๋ฒ์งธ ์ฌ๋์ HHHPPPH ์ด๋ ๊ฒ ๋ณผ๋ ์ฒ๋ฆฌ๋ ์์น์ ํ๋ฒ๊ฑฐ๋ฅผ ๋จน์ ์ ์๋ค. ์ฌ๊ธฐ์ ๊ฐ์ฅ ์ผ์ชฝ์ ํ๋ฒ๊ฑฐ, ์ฆ 2๋ฒ ์์น์ ํ๋ฒ๊ฑฐ๋ฅผ ๋จน์ผ๋ฉด ๊ฐ์ฅ ์ต์ ์ผ๋ก ํ๋ฒ๊ฑฐ๋ฅผ ์ ํํ๋ ๊ฒ์ด๋ค.
์๊ฐ ๋ณต์ก๋๋ (ํ ์ด๋ธ์ ๊ฐ ์์๋ฅผ ์ํ)x(i๋ฒ์งธ ์์น์ ์ฌ๋์ ๋ํด์ [i-k,i+k] ๊ตฌ๊ฐ์ ํ๋ฒ๊ฑฐ ์๋์ง ํ์) = O(N)xO(2K) ์ด๋ฏ๋ก O(NK)๋ก ์๊ฐ๋ด์ ํ์ด๊ฐ ๊ฐ๋ฅํ๋ค.
๐์ฝ๋ ์ค๊ณํ๊ธฐ
- ์ํ์ ๊ธธ์ด N, ํ๋ฒ๊ฑฐ๋ฅผ ์ ํํ ์ ์๋ ๊ฑฐ๋ฆฌ K ์ ๋ ฅ๋ฐ๊ธฐ
- ํ๋ฒ๊ฑฐ์ ์ฌ๋์ ๋ฐฐ์น table ๋ฆฌ์คํธ๋ก ์ ๋ ฅ๋ฐ๊ธฐ
- ํ๋ฒ๊ฑฐ๋ฅผ ๋จน์ ์ฌ๋ ์๋ฅผ ์ ์ฅํ h_cnt ๋ณ์ 0์ผ๋ก ์ด๊ธฐํ
- ๊ฐ์ฅ ์ผ์ชฝ์ ์์นํ ์ฌ๋๋ถํฐ ์์ฐจ์ ์ผ๋ก ํ์ํ๋ฉด์, ํด๋น ์์น i์์ [i-k, i+k] ๊ตฌ๊ฐ ์ค ๋จ์ ํ๋ฒ๊ฑฐ๊ฐ ์๋ค๋ฉด ๊ฐ์ฅ ์ผ์ชฝ์ ์๋ ํ๋ฒ๊ฑฐ๋ฅผ ์ ํํด์ ์ ํ๋์๋ค๋ ์๋ฏธ๋ก S๋ก ๋ฐ๊ฟ์ฃผ๊ณ h_cnt๋ฅผ 1 ์ฆ๊ฐ์ํจ๋ค
- ๋ชจ๋ ์ฌ๋์ ๋ํ ํ์์ด ๋๋๋ฉด h_cnt๋ฅผ ์ถ๋ ฅํ๋ค.
๐์ ๋ต ์ฝ๋
N, K = map(int, input().split())
table = list(input())
h_cnt = 0
for i in range(N):
if table[i] == 'P':
for j in range(i-K, i+K+1):
if 0 <= j < N and table[j] == 'H':
table[j] = 'S'
h_cnt += 1
break
print(h_cnt)