본문 바로가기
Baekjoon 자바 코드/2차원 배열

[백준] 10798번 세로읽기 풀이 코드 (Java 자바)

by 망댕이 2024. 5. 23.
반응형

접근 방법)

5행 15열짜리 배열은 만든 다음 그 배열 속에서 입력 값의 범위만큼 사용하여 문제를 해결하면 된다.

5행은 기본적으로 고정이며, 15열 중 몇 열을 사용할지는 Scanner를 통해 입력받은 첫 번째 줄 값을 length() 함수를 이용하여 배열의 행 열 값을 알아낼 수 있다.

그리고 이중 for문을 이용하여 2차원 배열을 만들어낼 수 있다.

 

그리고 만들어진 배열은 이중 for문을 이용하여 출력하면 된다.

 

정답 코드 1)

import java.util.*;
import java.lang.*;
import java.io.*;

class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        char[][] arr = new char[5][15]; // 5행 15열 배열 생성
        

        for(int i = 0; i < 5; i++){ // 5행
            String str = sc.nextLine(); // 입력값 enter 기준으로 입력받음
            for(int j = 0; j < str.length(); j++){ // 입력값 길이 만큼 for문 실행
                arr[i][j] = str.charAt(j); 
            }
        }
        for(int j = 0; j < arr[0].length; j++){
            for(int i = 0; i < 5; i++){
                if (arr[i][j] == 0) { 
                    continue; // 0 값에 해당할 경우 반복문 현재 단계 중단
                }
                System.out.print(String.valueOf(arr[i][j])); // 결과값 출력
            }
        }
    }
}

 

5행 15열 배열을 만든 후 열 값은 입력값의 길이를 가져와 사용할 수 있도록 for문을 만들어준다.

마지막으로 이중 for문을 이용하여 결과값을 출력할 때 continue를 사용하는데, 반복문을 실행하면서 해당 2차원 배열 값이 0인 경우 반복문을 중단하고 넘어갈 수 있도록 추가해야 한다.

 

이 문제를 풀면서 입력했을 때 열 길이에 맞게 자동으로 2차원 배열을 생성할 수 있지에 대한 부분에서 많이 헤매었다.

문제를 다 풀고 나서 되돌아보았을 때 굉장히 단순한 2차원 배열 문제인 것 같았다.

반응형