寝癖頭の解法

学習中の覚え書きを投稿、更新していきます。

paizaラーニング: C++による「データセット選択メニュー」問題集: 集合の結合

paizaラーニングのレベルアップ問題集「データセット選択メニュー」からの出典です。
paiza.jp
C++による「データセット選択メニュー」問題集: 集合の結合と、それらの提出コードの解答例です。

僕が作成、提出したコードは、以下のとおりです。

・STEP: 1 集合の探索

paiza.jp

/*
paizaラーニング: C++による「データセット選択メニュー」問題集: 集合の結合
STEP: 1 集合の探索
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int n,b;
    cin>>n>>b;
    bool tf=false;
    vector<int> a(n);
    for(int i=0;i<n;i++){
        cin>>a[i];
        if(a[i]==b){
            tf=true;
        }
    }
    cout<<((tf==false) ? "No" : "Yes")<<endl;
    return 0;
}
・STEP: 2 重複の削除

paiza.jp

/*
paizaラーニング: C++による「データセット選択メニュー」問題集: 集合の結合
STEP: 2 重複の削除
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int n;
    cin>>n;
    vector<int> a;
    for(int i=0;i<n;i++){
        int p;
        cin>>p;
        a.push_back(p);
    }
    sort(a.begin(),a.end());
    a.erase(unique(a.begin(),a.end()),a.end());
    for(int i=0;i<a.size();i++){
        cout<<a[i]<<((i==a.size()-1) ? "\n" : " ");
    }
    return 0;
}
・STEP: 3 重複の判定 1

paiza.jp

/*
paizaラーニング: C++による「データセット選択メニュー」問題集: 集合の結合
STEP: 3 重複の判定 1
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int n;
    cin>>n;
    vector<int> a(n);
    for(int i=0;i<n;i++){
        cin>>a[i];
        if(i!=0){
            bool tf=false;
            for(int j=0;j<i;j++){
                if(a[i]==a[j]){
                    tf=true;
                }
            }
            if(tf==true){
                cout<<"Yes"<<endl;
            }else{
                cout<<"No"<<endl;
            }
        }
    }
    return 0;
}
・STEP: 4 重複の判定 2

paiza.jp

/*
paizaラーニング: C++による「データセット選択メニュー」問題集: 集合の結合
STEP: 4 重複の判定 2
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int n;
    cin>>n;
    vector<string> a(n);
    for(int i=0;i<n;i++){
        cin>>a[i];
        if(i!=0){
            bool tf=false;
            for(int j=0;j<i;j++){
                if(a[i]==a[j]){
                    tf=true;
                }
            }
            if(tf==true){
                cout<<"Yes"<<endl;
            }else{
                cout<<"No"<<endl;
            }
        }
    }
    return 0;
}
・FINAL問題: 集合の結合

paiza.jp

/*
paizaラーニング: C++による「データセット選択メニュー」問題集: 集合の結合
FINAL問題: 集合の結合
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
int main(void){
    vector<ll> v;
    int n;
    cin>>n;
    vector<ll> a(n),b(n);
    for(int i=0;i<n;i++){
        cin>>a[i];
        v.push_back(a[i]);
    }
    for(int i=0;i<n;i++){
        cin>>b[i];
        v.push_back(b[i]);
    }
    sort(v.begin(),v.end());
    v.erase(unique(v.begin(),v.end()),v.end());
    for(int i=0;i<v.size();i++){
        cout<<v[i]<<((i==v.size()-1) ? "\n" : " ");
    }
    return 0;
}

paizaラーニングのレベルアップ問題集については、ユーザー同士で解答を教え合ったり、コードを公開したりするのは自由としています。
また授業や研修、教材などにも利用できるそうです。