[SWEA] 의석이의 세로로 말해요

문제 보러가기

제한사항

이외의 제한사항은 없다.

첫번째 생각

2차원 배열로 칠판을 관리하고, 공백만 체크해서 예외처리를 해주는 방식으로 해결하였다.

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        for (int tc = 1; tc <= T; tc++) {
            StringBuffer sb = new StringBuffer();
            String s[] = new String[5];
            char b[][] = new char[5][];

            int len = 0;
            for (int i = 0; i < 5; i++) {
                s[i] = sc.next();
                b[i] = new char[s[i].length()];
                for (int j = 0; j < b[i].length; j++) {
                    b[i][j] = s[i].charAt(j);
                    if (len < s[i].length())
                        len = s[i].length();
                }
            }
            char a[][] = new char[len][len];
            for (int i = 0; i < 5; i++) {
                for (int j = 0; j < len; j++) {
                    if (b[i].length <= j)
                        break;
                    a[i][j] = b[i][j];
                }
            }

            for (int i = 0; i < len; i++)
                for (int j = 0; j < 5; j++) {
                    	if(a[j][i] != '
import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        for (int tc = 1; tc <= T; tc++) {
            StringBuffer sb = new StringBuffer();
            String s[] = new String[5];
            char b[][] = new char[5][];

            int len = 0;
            for (int i = 0; i < 5; i++) {
                s[i] = sc.next();
                b[i] = new char[s[i].length()];
                for (int j = 0; j < b[i].length; j++) {
                    b[i][j] = s[i].charAt(j);
                    if (len < s[i].length())
                        len = s[i].length();
                }
            }
            char a[][] = new char[len][len];
            for (int i = 0; i < 5; i++) {
                for (int j = 0; j < len; j++) {
                    if (b[i].length <= j)
                        break;
                    a[i][j] = b[i][j];
                }
            }

            for (int i = 0; i < len; i++)
                for (int j = 0; j < 5; j++) {
                    	if(a[j][i] != '\0') {
                        sb.append(a[j][i]);
                    }
                }
            

            System.out.println("#" + tc + " " + sb.toString());

        }
    }
}
'
) { sb.append(a[j][i]); } } System.out.println("#" + tc + " " + sb.toString()); } } }