paizaラーニングのレベルアップ問題集「データセット選択メニュー」からの出典です。
paiza.jp
C++による「データセット選択メニュー」問題集: 集合の結合と、それらの提出コードの解答例です。
僕が作成、提出したコードは、以下のとおりです。
・STEP: 1 集合の探索
/* 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ラーニング: 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ラーニング: 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ラーニング: 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ラーニング: 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ラーニングのレベルアップ問題集については、ユーザー同士で解答を教え合ったり、コードを公開したりするのは自由としています。
また授業や研修、教材などにも利用できるそうです。