알고리즘 문제/그리디

[개쉬운 풀이] 백준 19941 햄버거 분배 CPP (17일차)

odaebum 2024. 12. 8. 23:38
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