寝癖頭の解法

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

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,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.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(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.jp

/*
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.jp

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