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,m; cin>>n>>m; vector<int> a(n); for(int i=0;i<n;i++){ cin>>a[i]; } cout<<a[m-1]<<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(n); for(int i=0;i<n;i++){ cin>>a[i]; } int q; cin>>q; vector<int> b(q); for(int i=0;i<q;i++){ cin>>b[i]; } for(int i=0;i<q;i++){ cout<<a[b[i]-1]<<endl; } return 0; }
STEP: 3 最大値と最小値
/* paizaラーニング: C++による「データセット選択メニュー」問題集: 動的配列 STEP: 3 最大値と最小値 https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int a,b,c; cin>>a>>b>>c; int maximum=max(max(a,b),c); int minimum=min(min(a,b),c); cout<<maximum-minimum<<endl; return 0; }
・FINAL問題: 動的配列
/* paizaラーニング: C++による「データセット選択メニュー」問題集: 動的配列 FINAL問題: 動的配列 https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n,q; cin>>n>>q; vector<int> a; vector<int> query(q); for(int i=0;i<n;i++){ int j; cin>>j; a.push_back(j); } for(int i=0;i<q;i++){ cin>>query[i]; if(query[i]==0){ int x; cin>>x; a.push_back(x); }else if(query[i]==1){ a.pop_back(); }else{ for(int j=0;j<a.size();j++){ cout<<a[j]; if(j!=a.size()-1){ cout<<" "; } } cout<<endl; } } return 0; }
paizaラーニングのレベルアップ問題集については、ユーザー同士で解答を教え合ったり、コードを公開したりするのは自由としています。
また授業や研修、教材などにも利用できるそうです。