정사각형으로 만들기 Lv. 0

박영준·2023년 6월 22일
0

코딩테스트

목록 보기
277/300
class Solution {
    public int[][] solution(int[][] arr) {
        int[][] answer = {};
        return answer;
    }
}

해결법

방법 1

import java.util.*;

class Solution {
    public int[][] solution(int[][] arr) {
        
        int[][] answer1 = new int[arr.length][arr.length];
        int[][] answer2 = new int[arr[0].length][arr[0].length];
        
        // 행 > 열
        if (arr.length > arr[0].length) {
            for(int i = 0; i < arr.length; i++) {
                answer1[i] = Arrays.copyOf(arr[i], arr.length);
                
            }
            return answer1;
            
        // 행 < 열    
        } else if (arr[0].length > arr.length) {
            for (int i = 0; i < arr.length; i++) {
                answer2[i] = Arrays.copyOf(arr[i], arr[0].length);
            }
            return answer2;
        }
        
        // 행 = 열
        return arr;
    }
}
  • 행과 열이 동일한 길이를 가지도록, 처음부터 배열을 그렇게 생성해준다

  • Arrays.copyOf : 배열 복사

방법 2

class Solution {
    public int[][] solution(int[][] arr) {
        int max = Math.max(arr.length, arr[0].length);
        int[][] answer = new int[max][max];

        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                answer[i][j] = arr[i][j];
            }
        }

        return answer;
    }
}
  • 최댓값을 이용한 방법
    • 행과 열 모두 최댓값이 되도록 만든다

정사각형으로 만들기 Lv. 0

profile
개발자로 거듭나기!

0개의 댓글