JAVA/프로그래머스 코딩테스트 입문

[프로그래머스 LV.0] 2차원으로 만들기

sundori 2024. 12. 2. 18:37

목차

 

 

문제 설명

정수 배열 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차원 배열에 값을 채움.
  • 결과 반환: 변환된 배열을 반환.

    각 반복 단계

    1. i=0: answer[0][0] = 1 → [[1, 0], [0, 0], [0, 0], [0, 0]]
    2. i=1: answer[0][1] = 2 → [[1, 2], [0, 0], [0, 0], [0, 0]]
    3. i=2: answer[1][0] = 3 → [[1, 2], [3, 0], [0, 0], [0, 0]]
    4. i=3: answer[1][1] = 4 → [[1, 2], [3, 4], [0, 0], [0, 0]]
    728x90