Programing/백준, 프로그래머스(C++)

[C++][백준 10798] 세로읽기

hye3193 2024. 12. 31. 15:57

https://www.acmicpc.net/problem/10798

제출 코드

#include <iostream>
#include <string>
using namespace std;

int main()
{
    char words[5][15] = {};
    for (int i = 0; i < 5; i++)
    {
        string word;
        cin >> word;

        for (int j = 0; j < word.length(); j++)
        {
            words[i][j] = word[j];
        }
    }

    for (int i = 0; i < 15; i++)
    {
        for (int j = 0; j < 5; j++)
        {
            if (words[j][i] == 0) continue;
            cout << words[j][i];
        }
    }
}

배열을 만들어두고 전체 문자열을 받아둔 다음에 차례로 출력하였다

 

추가

#include <iostream>
#include <string>
using namespace std;

int main()
{
    char words[5][15] = {};
    for (int i = 0; i < 5; i++)
    {
        cin >> words[i];
    }

    for (int i = 0; i < 15; i++)
    {
        for (int j = 0; j < 5; j++)
        {
            if (words[j][i] == 0) continue;
            cout << words[j][i];
        }
    }
}

처음에 풀었던 것처럼 입력받을 때 for문을 굳이 두 번 돌지 않고도 위와 같은 식으로 코드를 작성할 수 있다

이렇게 작성해도 입력받은 문자열이 char 단위로 words[i] 행에 차례로 저장된다