백준문제풀이 7단계 2차원 배열3 10798번 세로읽기 (C#)

2024. 6. 9. 20:00백준 문제풀이/7단계 2차원 배열

 

문제가 정말 길다....!

 

간단하게 설면하자면 소문자, 대문자, 숫자로 이루어진 문자열 5개를 받고

그 문자열을 한줄씩 나열한다음 세로로 읽으면 되늗것.

또한 길이가 다를때, 중간에 빈칸이 있다면 그 칸은 빼고 읽으면 된다.

using System;
using System.Text;

class BackJoon
{
    static void Main(string[] args)
    {
        char[,] str = new char[5, 15];
        StringBuilder output = new StringBuilder();
        for (int i = 0; i < 5; i++)
        {
            string input = Console.ReadLine();
            for (int j = 0; j < 15; j++)
                if (j < input.Length)
                    str[i, j] = input[j];
                else
                    str[i, j] = '-';
        }
        for (int i = 0; i < 15; i++)
        {
            for (int j = 0; j < 5; j++)
                if (str[j, i] != '-')
                    output.Append(str[j, i]);
        }
        Console.WriteLine(output);
    }
}

 

char배열과 StringBuilder를 이용해서 풀었다.

문자열을 한자씩 char배열에 넣었고 빈칸일때는 '-'를 넣었다.

문자열의 최대 길이가 15이니까 j는 15까지 반복하고 j가 문자열의 길이를 넘어가면 '-'를 채우는 식이다.

 

그리고 배열의 i와j를 바꿔서 '-'가 아닐때 stringBuilder에 Append해주었다.

그렇게 출력해주면 끝.