728x90
https://www.acmicpc.net/problem/19941
문제
생각
1. 현재 학생들이 먹을 수 있는 햄버거를 그리디 형식으로 해결했다.
2. 같은 방향으로 먹으면 최대치로 먹을 수 있다.
풀이
#include <iostream>
#include <vector>
using namespace std;
const int MAX = 20001;
int N, K;
vector<char> v;
void input(){
cin >> N >> K;
v = vector<char>(N);
for(int i = 0; i < N; i++){
cin >> v[i];
}
}
void print(){
for(int i = 0; i < N; i++){
cout << v[i];
}
}
void sol(){
int answer = 0;
for(int i = 0; i < N; i++){
if(v[i] != 'P') continue;
for(int p = i-K; p <= i+K; p++){
if(p < 0 || p >= N) continue;
if(v[p] == 'H'){
v[p] = '.';
answer++;
break;
}
}
}
cout << answer << endl;
}
int main(){
input();
sol();
return 0;
}
728x90
'알고리즘 문제 > 그리디' 카테고리의 다른 글
[개쉬운 풀이] 백준 2212 센서 (CPP/C++) (0) | 2024.03.04 |
---|