programming
[C++] 백준 10798: 세로 읽기
Mysteryu
2023. 6. 20. 19:07
풀이
문자열의 배열을 이용하여 푸는 문제다.
1). 문자열은 5개를 입력받는 것이 디폴트이기 때문에 먼저 반복문을 이용하여 문자열을 생성하였다. 이때 문자열들 중 가장 긴 길이를 측정한다.
2). 반복문에 사용할 k라는 변수를 초기화한다. 먼저 while문을 선언하여 k가 1)에서 구한 최대 문자열 길이 값을 넘으면 반복문은 종료된다. k라는 변수는 이차원 배열의 두 번째 element의 접근에 쓰인다
3). while문 안에 for문을 선언한다. 이때 정의되는 변수는 이차원 배열의 첫 번째 element를 접근하는데 쓰인다
4). 만약 어떤 문자열의 길이 -1 이 k보다 작다면 이때는 해당 배열값에 아무값도 없기 때문에 출력하지 않는다.
#include <iostream>
#include <string>
int main() {
std::string s[5];
int max_length = 0;
for (int i = 0; i < 5; i++) {
std::cin >> s[i];
if (max_length < s[i].length())
max_length = s[i].length();
}
int k = 0;
while (k < max_length) {
for (int j = 0; j < 5; j++) {
if (s[j].length() - 1 >= k) {
std::cout << s[j][k];
}
}
++k;
}
std::cout << "\n";
}