본문 바로가기
알고리즘/백준

백준 19941 햄버거 분배 C++

by ash9river 2024. 4. 21.

문제 보고 그냥 단순하게 왼쪽부터 차례대로 전부 탐색

 

시간제한이 0.5초이고, n이 20000개, k가 10이다.

 

최소한 20000 * 10하면 이십만번 탐색하면 0.5초도 안걸린다고 생각해서 전부 탐색해도 된다.

 

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
    cin.tie(0);
    ios_base::sync_with_stdio(0);
    int n,k;
    cin>>n>>k;
    string a;
    cin>>a;
    vector<bool> visited(n,false);
    int ans=0;
    for(int i=0;i<a.size();++i){
        if(a[i]=='P'){
            bool state=false;
            int ptr=i-k;
            if(i-k<0){
                ptr=0;
            }
            for(int j=ptr;j<i;++j){
                if(!visited[j]&&a[j]=='H'){
                    visited[j]=true;
                    state=true;
                    ++ans;
                    break;
                }
            }
            if(!state){
                for(int j=i+1;j<=i+k&&j<n;++j){
                    if(!visited[j]&&a[j]=='H'){
                        visited[j]=true;
                        ++ans;
                        break;
                    }
                }
            }
        }
    }
    cout<<ans;
}

'알고리즘 > 백준' 카테고리의 다른 글

백준 16437 양 구출 작전 C++  (0) 2024.05.02
백준 24391 귀찮은 해강이 C++  (0) 2024.04.29
백준 17406 배열 돌리기 4 C++  (0) 2024.04.16
백준 22115 창영이와 커피 C++  (0) 2024.04.16
백준 1106 호텔 C++  (0) 2024.04.15