목차
문제 설명
정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요.
num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다.
제한사항
- num_list의 길이는 n의 배 수개입니다.
- 0 ≤ num_list의 길이 ≤ 150
- 2 ≤ n < num_list의 길이
class Solution {
public int[][] solution(int[] num_list, int n) {
int rows = num_list.length / n;
int[][] answer = new int[rows][n];
// 1차원 배열을 2차원 배열로 변환
for (int i = 0; i < num_list.length; i++) {
answer[i / n][i % n] = num_list[i];
}
return answer;
}
}
- 행 개수 계산: 1차원 배열의 길이를 n으로 나눠 2차원 배열의 행 개수를 계산.
- 배열 생성: rows x n 크기의 2차원 배열을 생성.
- 변환 작업: 각 인덱스를 (i / n, i % n)으로 변환하여 2차원 배열에 값을 채움.
- 결과 반환: 변환된 배열을 반환.
각 반복 단계
- i=0: answer[0][0] = 1 → [[1, 0], [0, 0], [0, 0], [0, 0]]
- i=1: answer[0][1] = 2 → [[1, 2], [0, 0], [0, 0], [0, 0]]
- i=2: answer[1][0] = 3 → [[1, 2], [3, 0], [0, 0], [0, 0]]
- i=3: answer[1][1] = 4 → [[1, 2], [3, 4], [0, 0], [0, 0]]
728x90
'JAVA > 프로그래머스 코딩테스트 입문' 카테고리의 다른 글
[프로그래머스 LV.0] 진료 순서 정하기 (0) | 2024.12.10 |
---|---|
[프로그래머스 LV.0] 중복된 문자 제거 (1) | 2024.12.10 |
[프로그래머스 LV.0] 외계행성의 나이 (0) | 2024.12.02 |
[프로그래머스 LV.0] 합성수 찾기 (0) | 2024.12.02 |
[프로그래머스 LV.0] 문자열 정렬하기 (2) (1) | 2024.12.02 |