본문 바로가기

Java/코딩테스트

[프로그래머스/181830] 정사각형으로 만들기(row= arr.length, column=arr[0].length, Math.max(row, column))

✏️ 문제 설명

이차원 정수 배열 arr이 매개변수로 주어집니다. arr의 행의 수가 더 많다면 열의 수가 행의 수와 같아지도록 각 행의 끝에 0을 추가하고, 열의 수가 더 많다면 행의 수가 열의 수와 같아지도록 각 열의 끝에 0을 추가한 이차원 배열을 return 하는 solution 함수를 작성해 주세요.


✏️ code

📌int[][] result = new int[size][size]
: 자바에서 배열을 생성하면 기본값으로 0이 채워집니다.

📌이중 for문 (row → column)
: row 각 행에 하나씩 접근하여 → 행마다 column 열에 접근. 즉, 각 행에 있는 모든 열에 접근합니다.

 

import java.lang.Math;

class Solution {
    public int[][] solution(int[][] arr) {
        return squareArray(arr);
    }
    
    private static int[][] squareArray(int[][] arr) {
        int row = arr.length;
        int column = arr[0].length;
        int size = Math.max(row, column);
        
        int[][] result = new int[size][size]; // 자동으로 0으로 채워짐
        
        for (int i = 0; i < row; i++) {
            for (int j = 0; j < column; j++) {
                result[i][j] = arr[i][j];
            }
        }
        
        return result;
    }
}
반응형