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;
}
}
'프로그래머스 문제풀어보기' 카테고리의 다른 글
[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 |
댓글