[프로그래머스] Lv.0 정사각형으로 만들기.java

hgghfgf·2023년 6월 16일
0

프로그래머스

목록 보기
158/227

정사각형으로 만들기.java

class Solution {
    public int[][] solution(int[][] arr) {
        int row = arr.length;
        int col = arr[0].length;

        if (row > col) {
            int[][] temp = new int[row][row];
            for (int i = 0; i < row; i++) {
                for (int j = 0; j < col; j++) {
                    temp[i][j] = arr[i][j];
                }
                temp[i][col] = 0;
            }
            return temp;
        } else if (col > row) {
            int[][] temp = new int[col][col];
            for (int i = 0; i < col; i++) {
                for (int j = 0; j < row; j++) {
                    temp[j][i] = arr[j][i];
                }
                temp[row][i] = 0;
            }
            return temp;
        } else {
            return arr;
        }
    }
}

arr의 행의 수를 변수 row에, 열의 수를 변수 col에 저장합니다.
조건을 검사하여 row와 col의 값을 비교합니다.
row가 col보다 크다면, 행의 수를 열의 수와 같게 만들기 위해 임시 2차원 배열 temp를 생성합니다. temp의 크기는 row × row입니다.
각 행의 끝에 0을 추가하기 위해 arr의 값을 temp로 복사하고, 행의 마지막 열에 0을 추가합니다.
temp 배열을 반환합니다.
col이 row보다 크다면, 열의 수를 행의 수와 같게 만들기 위해 임시 2차원 배열 temp를 생성합니다. temp의 크기는 col × col입니다.
각 열의 끝에 0을 추가하기 위해 arr의 값을 temp로 복사하고, 열의 마지막 행에 0을 추가합니다.
temp 배열을 반환합니다.
row와 col이 같다면, arr 배열을 그대로 반환합니다.

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

0개의 댓글