쉬운 줄 알고 덤볐다가 생각보다 고전을 해서.. 생각 과정을 풀이하려 한다.


5줄로 입력받는데, 처음엔 줄마다 단어의 개수가 같은 줄 알고 단순히 15*15행렬을 만들어 @로 채워뒀다.
그런데 어라라 단어의 개수가 다르더라.
그래서 어떻게 해야 좋을 지 고민했다.
생각
1. 5줄로 입력받을 때, string 형식으로 받으면서 각 문자열의 길이를 배열에 저장해 두자.
2. string 길이 정보를 담은 배열에서 max length를 뽑아내자
3. 각 줄을 순회할 때, string이 max length보다 짧으면 나머지는 @로 채워넣자.
4. 세로로 출력을 할 때, @가 아닌 문자에 대해서만 출력하자.
#include <algorithm>
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main() {
string str;
int length[5];
char arr[15][15];
int max=0;
for (int i=0; i<5; i++){
cin >> str;
length[i] = str.length();
for(int j=0; j<str.length(); j++){
arr[i][j] = str[j];
}
}
for (int i=0; i<5; i++){if(length[i] > max) max=length[i];}
for(int i=0; i<5; i++){
for (int col=length[i]; col<max; col++){
arr[i][col] = '@';
}
}
for(int row=0; row<max; row++){
for(int j=0; j<5; j++){
if(arr[j][row]!='@'){
cout << arr[j][row];
}
}
}
return 0;
}