https://www.acmicpc.net/problem/10798
문제는 총 다섯줄의 단어를 입력받고 이 입력받은 단어를 세로로 읽는 문제이다.
단어당 최대 15자리 단어를 입력받을수 있는 15x5 배열을 하나 선언한다.
문자열 을 입력받고 문자열길이만큼 배열에 저장을 한다.
출력은 입력받을때와 반대로 하면 되는데 이때 주의사항이 있다.
필자는 이것때문에 많은 고생을 했는데 알고보니 간단한 문제였다.
전역변수로 선언한 board 배열에 저장된 문자를 출력할때 최대 15문자가 저장되있지않으면 출력시 수많은 널문자를
출력한다. 이것은 눈에 보이지않기에 왜 틀렸는지 알수없었다.
그래서 이 널문자가 있을경우에 continue를 통해 출력을 하지않도록 하는것이 중요하다.
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <functional>
#include <vector>
#include <stack>
#include <queue>
using namespace std;
char board[16][5];
int main(void)
{
string a;
for(int i=0; i<5; ++i) {
cin >> a;
for(int j=0; j<a.size(); ++j) {
board[j][i] = a[j];
}
}
for(int j=0; j<15; ++j) {
for(int i=0; i<5; ++i) {
if (board[j][i] == '\0')
continue;
cout << board[j][i];
}
}
return 0;
}
댓글