[JAVA 문제 풀이] 212. 정사각형으로 만들기

프로그래머스 (181830)
Stupefyee's avatar
Apr 21, 2025
[JAVA 문제 풀이] 212. 정사각형으로 만들기
notion image
 

내가 작성한 코드

class Solution { public int[][] solution(int[][] arr) { if (arr.length > arr[0].length) { int[][] answer = new int[arr.length][arr.length]; for (int i = 0; i < arr.length; i++) { System.arraycopy(arr[i], 0, answer[i], 0, arr[i].length); } return answer; } if(arr.length < arr[0].length) { int[][] answer = new int[arr[0].length][arr[0].length]; for (int i = 0; i < arr.length; i++) { System.arraycopy(arr[i], 0, answer[i], 0, arr[i].length); } return answer; } return arr; } }
  • System.arraycopy(arr[i], 0, answer[i], 0, arr[i].length);
    • arr[i]: 복사할 원본 배열의 참조. i번째 내부 배열을 복사
    • 0: 원본 배열에서 복사를 시작할 인덱스
    • answer[i]: 복사 대상 배열의 참조. i번째 내부 배열에 붙여넣기
    • 0: 대상 배열에서 복사를 시작할 인덱스
    • arr[i].length: 복사할 요소의 개수
 

다른 사람의 코드

class Solution { public int[][] solution(int[][] arr) { int max = Math.max(arr.length, arr[0].length); int[][] array = new int[max][max]; for (int i = 0; i < arr.length; i++) { System.arraycopy(arr[i], 0, array[i], 0, arr[0].length); } return array; } }
  • 1차원 배열과 2차원 배열의 길이를 비교애 더 큰것을 새로운 배열의 길이로 사용후 복제
Share article

stupefyee