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

백준 14222 배열과 연산 C++

by ash9river 2024. 8. 7.

해설

1부터 n까지 빈자리 모두 채워넣기

 

1부터 빈자리 찾아넣는다고 해서 그리디라고는 한다는거같은데 그리디의 개념은 조금 약한거 같다.


간단하게 풀기 가능

#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;
    vector<int> v(n);
    for(int i=0;i<n;++i){
        cin>>v[i];
    }
    sort(v.begin(),v.end());
    vector<bool> visited(n,false);
    for(int i=0;i<n;++i){
        int val=v[i];
        if(visited[val]){
            for(int j=val;j<=n;j+=k){
                if(!visited[j]){
                    visited[j]=true;
                    break;
                }
            }
        }
        else{
            visited[val]=true;
        }
    }
    bool state=true;
    for(int i=1;i<=n;++i){
        if(!visited[i]){
            state=false;
            break;
        }
    }
    if(state) cout<<1;
    else cout<<0;
}

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

백준 1939 중량제한 C++  (0) 2024.08.19
백준 20055 컨베이어 벨트 위의 로봇 C++  (0) 2024.08.18
백준 1781 컵라면 C++  (2) 2024.08.03
백준 30023 전구 상태 바꾸기 C++  (2) 2024.06.18
백준 2247 실질적 약수 C++  (0) 2024.06.12