Level. 0
문제
이차원 정수 배열 arr이 매개변수로 주어집니다.
arr의 행의 수가 더 많다면 열의 수가 행의 수와 같아지도록 각 행의 끝에 0을 추가하고, 열의 수가 더 많다면 행의 수가 열의 수와 같아지도록 각 열의 끝에 0을 추가한 이차원 배열을 return 하는 solution 함수를 작성해 주세요.
* 제한사항
- 1 ≤ arr의 길이 ≤ 100
- 1 ≤ arr의 원소의 길이 ≤ 100
arr의 모든 원소의 길이는 같습니다.
- 1 ≤ arr의 원소의 원소 ≤ 1,000
풀이
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<max; i++){
for(int j=0; j<max; j++){
if(i >= arr.length){
answer[i] = new int[max];
continue;
}
if(j >= arr[i].length){
answer[i][j] = 0;
}
else {
answer[i][j] = arr[i][j];
}
}
}
return answer;
}
}
다른 풀이
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;
}
}
System.arraycopy - 배열복사, 배열 덮어쓰기
System.arraycopy( src, srcPos, dest, destPos, length );
- Object str : 원본배열
- int srcPos : 원본배열에서 복사할 항목의 시작 index
- Object dest : 새로운 배열
- int destPos : 새로운 배열에서 붙여 넣을 시작 index
- int length : 복사할 데이터의 개수
https://school.programmers.co.kr/learn/courses/30/lessons/181830
'Algorithm > Programers - Java' 카테고리의 다른 글
[프로그래머스(Java)] 그림 확대 / String.valueOf, repeat() (0) | 2023.09.19 |
---|---|
[프로그래머스(Java)] 외계어 사전 (0) | 2023.09.10 |
[프로그래머스(Java)] 무작위로 K개의 수 뽑기 / ArrayList.contains(), Stream concat(), limit(), distinct() (0) | 2023.09.09 |
[프로그래머스(Java)] 수열과 구간 쿼리 2 / Arrays.fill() (0) | 2023.09.09 |
[프로그래머스(Java)] 문자열 여러 번 뒤집기 / StringBuilder.reverse(), toCharArray() (0) | 2023.09.09 |