[코딩 테스트 RUN] SWEA 수업 : 5356. 의석이의 세로로 말해요

코테런/SWEA(알고리즘 수업)
2026.03.03

 

⚠️ 주의!
SWEA에서 낸 코딩 문제에 대한 해답이 들어있습니다.
열람 시 주의해주세요.

 

[SW Expert Academy] 5356. 의석이의 세로로 말해요

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

행/열 우선순회를 사용하는 방식이다. 정확히는 열 우선순회를 하면 된다. 다만 문자열의 길이를 생각하는 것을 추천. 즉, 문자의 길이를 담당하는 i는 15 미만으로 두고(0에서 시작하므로) j는 줄수인 5 미만으로 두어 [j][i]를 하면 된다. 다만 i가 경계선을 넘을 수 있기 때문에(문자열마다 최대 길이는 있지만 각각의 길이는 다르다.) 조건 문으로 if(i < arr[j].length)를 하는 게 좋다.

 

 

정답

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Solution {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());

        for(int test_case = 1; test_case <= T; test_case++){
            //테스트 케이스 시작
            // arr 길이 설정
            char[][] arr = new char[5][];
            // arr 삽입
            // StringTokenizer 사용 비추천(toCharArray 사용)
            for (int i = 0; i < 5; i++) {
                String str = br.readLine();
                arr[i] = str.toCharArray();
            }
            //arr 종료

            StringBuilder sb = new StringBuilder();

            //문자 길이는 15 이하로 고정
            for (int i = 0; i < 15; i++) {
                for (int j = 0; j < 5; j++) {
                    //오류 방지용
                    if (i < arr[j].length) {
                        sb.append(arr[j][i]);
                    }
                }
            }

            System.out.printf("#%d %s", test_case, sb.toString());
            System.out.println();

        }
    }
}