알고리즘
10798 - 세로 읽기(백준)
WhNi
2024. 5. 29. 14:17
https://www.acmicpc.net/problem/10798
#include <iostream>
#include <vector>
#include <string>
using namespace std;
/*
AABCDD
afzz
09121
a8EWg6
P5h3kx
*/
int main()
{
//세로로 데이터 읽을 vector a
vector<string> a;
// 입력값 받을 x
string x;
// 입력값 중에서 가장 긴 문장열의 길이
int max_Length = 0;
// 입력값 받고 a에 추가
for (int i = 0; i < 5; i++)
{
cin >> x;
a.emplace_back(x);
x.clear();
}
// a에는 "AABCDD" ,"afzz" 이런식으로 삽입
// 가장 긴 길이값 구하기
for (auto y : a)
{
if (y.size() > max_Length)
{
max_Length = y.size();
}
}
//가장 긴 문자열의 길이 값 만큼 반복하면서
for (int i = 0; i < max_Length; i++)
{
// vector a의 사이즈만큼 또 반복하기
for (int j = 0; j < a.size(); j++)
{
// i가 문자열의 길이보다 작으면 텍스트 존재, 길면 공백
if (i < a[j].size())
{
cout << a[j][i];
}
}
}
return 0;
};
인 셈이다. 이렇게 명시적으로 보니까 좀 이해가 가는듯.