[白俊]10798号:縦読み


回答日:2021-09-25

質問する


質問リンク:https://www.acmicpc.net/problem/10798

アクセスと解析


問題を理解するのはそれほど難しくない.
ただし、vectorにすべての入力文字列を格納して値を取得する場合、すべての文字列の長さが等しいことは保証されません.したがって、インデックスに値がないのにその値にアクセスする場合があります.(この場合、未知の値も導入されます.)
そこで,この問題を解決するために,各文字列の長さ内のみにアクセスする条件を追加した.(コード内のif(i

コード#コード#

// 백준 10798번 : 세로읽기
#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<string> v;
    string ret = "";

    int maxLen = -1;
    for (int i = 0; i < 5; i++) {
        string str = "";
        cin >> str;
        maxLen = max(maxLen, (int)str.length());
        v.push_back(str);
    }
    
    for (int i = 0; i < maxLen; i++) {
        for (int j = 0; j < 5; j++) {
            if (i < v[j].size()) {
                ret += v[j][i];
            }
        }
    }
    cout << ret;
    return 0;
}

結果



フィードバック


簡単な問題をあまり簡単に考えないで、コードを慎重に実施してください.