본문 바로가기

프로그래머스(Java)/Level 0

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

728x90

코드 힌트

  1. 결과 배열 선언
    • 결과 배열 result는 num_list의 길이를 n으로 나눈 몫을 행의 수로, n을 열의 수로 하는 2차원 배열로 선언합니다.
    • int[][] result = new int[num_list.length / n][n];
      • 여기서 num_list.length / n은 결과 배열의 행(row) 수를 의미합니다.
      • n은 결과 배열의 열(column) 수를 의미합니다.
  2. 2차원 배열에 값 채우기
    • for 루프를 사용하여 num_list 배열을 순회합니다.
    • 각 값 num_list[i]를 2차원 배열 result의 올바른 위치에 할당합니다.
    • 위치 계산:
      • i / n은 현재 인덱스 i를 n으로 나눈 몫으로, 현재 값이 들어갈 행의 인덱스를 나타냅니다.
      • i % n은 현재 인덱스 i를 n으로 나눈 나머지로, 현재 값이 들어갈 열의 인덱스를 나타냅니다.
      • 예를 들어, i = 5이고 n = 3인 경우, 5 / 3 = 1이므로 1번째 행에, 5 % 3 = 2이므로 2번째 열에 값을 넣습니다.
  3. 결과 반환
    • 모든 값을 채운 후 result 배열을 반환합니다.

 


정답은 더보기 클릭

더보기
class Solution {
    public int[][] solution(int[] num_list, int n) {
        // 결과 배열을 선언합니다. num_list의 길이를 n으로 나눈 값을 행의 수로, n을 열의 수로 설정합니다.
        int[][] result = new int[num_list.length / n][n];
        
        // num_list 배열을 순회하면서 2차원 배열에 값을 채웁니다.
        for (int i = 0; i < num_list.length; i++) {
            // i를 n으로 나눈 값이 행의 인덱스가 되고, 나머지 값이 열의 인덱스가 됩니다.
            result[i / n][i % n] = num_list[i];
        }
        
        return result;
    }
}
728x90