본문 바로가기
프로그래머스 문제풀어보기

[Lv.0] 2차원으로 만들기

by dantriss 2023. 3. 10.


https://school.programmers.co.kr/learn/courses/30/lessons/120842

 

제한조건에 num_list의 길이는 n의 배수라는 조건이 있다.

2차원배열인 answer를 선언 및 초기화를 위해서 num_list.length/n 과 n을 넣는다. 그 이유는 사진으로 보자.

아래 사진은 int[][] a = new int[4][2]; 의 사진이다. 

2개씩 숫자가 들어간 배열들이 총 4개가 들어가있다.

또 배열 num_list를 n개만큼 나눠서 그걸 2차배열로 만들어주는게 문제이다. 그렇기 때문에 n개의 숫자가 들어간 배열이 총 num_list의 길이/n 만큼 필요한것이다.

이중 for 문을 사용할 것이다. 그럼 먼저 어떤게 필요한지 생각해보자.

먼저 필요한건 안에 배열들에 알맞는 숫자들을 넣는것 즉 [0,0]에 해당하는 숫자들을 넣어줘야한다.

 

안에 숫자는 n개이므로, n만큼 반복하는 for문을 생성하자

밖에 for문에는 num_list/n 만큼 반복하는 for문을 생성하자

int[][] a = new int[4][2]; 을 기준으로 본다면 자리값은 [0,0][0,1][1,0][1,1]...[3,0][3,1] 일것이다.

 

 

즉 2차배열인 answer에[num_list.length/3][n]값들을 넣어야 하기 때문에 answer[i][j]에 값들을 넣을 것이고 그 숫자들을

num_list[0]~num_list[n]에서 가져와서 넣을 것이다.

그러기위해 int num을 0으로 선언/초기화 하고 증감함수를 이용해 1씩 증가시켜주었다.

그렇게 하면 0~n까지 반복하는 for문에 의해 결국엔 num_list[n]까지의 숫자가 answer에 들어갈 것이고 진행사항은 아래와 같다.

 

 

import java.util.*;
class Solution {
    public int[][] solution(int[] num_list, int n) {
        int[][] answer = new int[num_list.length/n][n];
        int num = 0;
        
       for(int i =0; i<num_list.length/n; i++){
           for(int j=0; j<n; j++){
               answer[i][j]=num_list[num];
               num++;
           }
           
       }
        
        
        return answer;
    }
}

 

 

 

2차배열값 출력하는법 참조한 블로그

'프로그래머스 문제풀어보기' 카테고리의 다른 글

[Lv.0] 공 던지기  (0) 2023.03.13
[Lv.0] 진료 순서 정하기  (0) 2023.03.13
[Lv.0] k의 개수  (0) 2023.03.07
[Lv.0] A로 B 만들기  (0) 2023.03.06
[Lv.0] A로 B 만들기  (0) 2023.03.06

댓글