寝癖頭の解法

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

paizaラーニング: C++による「配列メニュー」問題集 【二次元配列の入出力】i番目の出力

paizaラーニングのレベルアップ問題集「配列メニュー」からの出典です。
paiza.jp
C++による「配列メニュー」問題集 【二次元配列の入出力】i番目の出力と、それらの提出コードの解答例です。

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

・STEP: 1 要素数の出力

/*
C++による「配列メニュー」問題集 【二次元配列の入出力】i番目の出力
STEP: 1 要素数の出力
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    vector<vector<int>> a={{1,2,3,4,5,6},{8,1,3,3,1,8}};
    cout<<sizeof(a[0])/sizeof(a[0][0])*2<<endl;
    return 0;
}

・STEP: 2 全要素の出力

/*
C++による「配列メニュー」問題集 【二次元配列の入出力】i番目の出力
STEP: 2 全要素の出力
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    vector<vector<int>> a={{6,5,4,3,2,1},{3,1,8,8,1,3}};
    for(int i=0;i<2;i++){
        for(int j=0;j<6;j++){
            cout<<a[i][j];
            if(j!=5){
                cout<<" ";
            }
        }
        cout<<endl;
    }
    return 0;
}

・STEP: 3 行数の出力

/*
C++による「配列メニュー」問題集 【二次元配列の入出力】i番目の出力
STEP: 3 行数の出力
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int a[][3]={{1,2,3},{4,5,6},{8,1,3}};
    cout<<extent<decltype(a),0>::value<<endl;
    return 0;
}

・STEP: 4 列数の出力

/*
C++による「配列メニュー」問題集 【二次元配列の入出力】i番目の出力
STEP: 4 列数の出力
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    vector<vector<int>> a={{1,2,3,4},{6,5,4,3},{3,1,8,1}};
    cout<<a.at(0).size()<<endl;
    return 0;
}

・STEP: 5 各行の要素数の出力

/*
C++による「配列メニュー」問題集 【二次元配列の入出力】i番目の出力
STEP: 5 各行の要素数の出力
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    vector<vector<int>> a={{1},{2,3},{4,5,6}};
    cout<<a.at(0).size()<<endl;
    cout<<a.at(1).size()<<endl;
    cout<<a.at(2).size()<<endl;
    return 0;
}

・STEP: 6 i 行目 j 列目の出力

/*
C++による「配列メニュー」問題集 【二次元配列の入出力】i番目の出力
STEP: 6 i 行目 j 列目の出力
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    vector<vector<int>> a={{1,2,3},{8,1,3},{10,100,1}};
    cout<<a[2-1][3-1]<<endl;
    return 0;
}

・STEP: 7 二次元配列の入力 1

/*
C++による「配列メニュー」問題集 【二次元配列の入出力】i番目の出力
STEP: 7 二次元配列の入力 1
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    vector<vector<int>> a={{1,3,5,7},{8,1,3,8}};
    for(int i=0;i<2;i++){
        for(int j=0;j<4;j++){
            cout<<a[i][j];
            if(j!=3){
                cout<<" ";
            }
        }
        cout<<endl;
    }
    return 0;
}

・STEP: 8 二次元配列の入力 2

/*
C++による「配列メニュー」問題集 【二次元配列の入出力】i番目の出力
STEP: 8 二次元配列の入力 2
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int m;
    cin>>m;
    vector<vector<int>> a(5,vector<int>(m));
    for(int i=0;i<5;i++){
        for(int j=0;j<m;j++){
            cin>>a[i][j];
            cout<<a[i][j];
            if(j!=m-1){
                cout<<" ";
            }
        }
        cout<<endl;
    }
    return 0;
}

・STEP: 9 二次元配列の入力 3

/*
C++による「配列メニュー」問題集 【二次元配列の入出力】i番目の出力
STEP: 9 二次元配列の入力 3
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int m;
    cin>>m;
    vector<vector<int>> a(m,vector<int>(5));
    for(int i=0;i<m;i++){
        for(int j=0;j<5;j++){
            cin>>a[i][j];
            cout<<a[i][j];
            if(j!=4){
                cout<<" ";
            }
        }
        cout<<endl;
    }
    return 0;
}

・STEP: 10 二次元配列の入力 4

/*
C++による「配列メニュー」問題集 【二次元配列の入出力】i番目の出力
STEP: 10 二次元配列の入力 4
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;
    int a[n][m];
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>a[i][j];
        }
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cout<<a[i][j];
            if(j!=m-1){
                cout<<" ";
            }
        }
        cout<<endl;
    }
    return 0;
}

・STEP: 11 i番目の出力 1

/*
C++による「配列メニュー」問題集 【二次元配列の入出力】i番目の出力
STEP: 11 i番目の出力 1
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int k,l;
    cin>>k>>l;
    vector<vector<int>> a={
        {1,2,3,4},
        {10,100,0,5},
        {8,1,3,8},
        {15,34,94,25}
    };
    cout<<a[k-1][l-1]<<endl;
    return 0;
}

・STEP: 12 i番目の出力 2

/*
C++による「配列メニュー」問題集 【二次元配列の入出力】i番目の出力
STEP: 12 i番目の出力 2
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int k,l;
    cin>>k>>l;
    vector<vector<int>> a(3,vector<int>(3));
    for(int i=0;i<3;i++){
        for(int j=0;j<3;j++){
            cin>>a[i][j];
        }
    }
    cout<<a[k-1][l-1]<<endl;
    return 0;
}

・FINAL問題: 【二次元配列の入出力】i番目の出力 Boss

/*
C++による「配列メニュー」問題集 【二次元配列の入出力】i番目の出力
FINAL問題: 【二次元配列の入出力】i番目の出力 Boss
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int n,m,k,l;
    cin>>n>>m>>k>>l;
    vector<vector<int>> a(n,vector<int>(m));
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>a[i][j];
        }
    }
    cout<<a[k-1][l-1]<<endl;
    return 0;
}

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