https://www.acmicpc.net/problem/19941
19941번: 햄버거 분배
기다란 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 $K$ 이하인 햄버거를 먹을 수 있다. 햄버거 사람 햄버거 사람 햄버거 사
www.acmicpc.net
[난이도] Silver3
[유형] Greedy
[풀이]
P인 점을 기준으로 i-K~i+K 만큼을 확인하여 햄버거가 있으면 그 햄버거를 invalid 처리하고
정답에 1을 추가해주면 됩니다.
#include <iostream>
#include <string>
using namespace std;
int N,K,ans;
string s;
int main(){
cin >> N >> K >> s;
for(int i=0;i<N;i++){
if(s[i]=='P'){
for(int j=i-K;j<=i+K && j<N;j++){
if(j<0) continue;
if(s[j]=='H'){
ans++;
s[j]='O';
break;
}
}
}
}
printf("%d",ans);
}
https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Silver3/19941.cpp
'Problem-Solving > BOJ' 카테고리의 다른 글
[BOJ/백준][Gold3] 21757 : 나누기 (C++) (0) | 2022.07.04 |
---|---|
[BOJ/백준][Bronze2] 21756 : 지우개 (C++) (0) | 2022.07.04 |
[BOJ/백준][Silver5] 19939 : 박 터뜨리기 (C++) (0) | 2022.07.04 |
[BOJ/백준][Gold2] 17623 : 괄호 (C++) (0) | 2022.07.04 |
[BOJ/백준][Gold5] 17622 : 타일 교체 (C++) (0) | 2022.07.04 |