728x90
흠 생각해봅시다.
public class Main {
public static void main(String[] args) throws Exception {
ArrayList<Integer> arrayList = new ArrayList<>();
int[][] a = {
{1,2,3},
{10,9,4}
};
int[] b = new int[a.length*a[0].length];//2 * 3
for(int i =0; i<a.length * a[0].length;i++){
b[i] = a[i / a[0].length][i % a[0].length];
arraylist.add(a[i / a[0].length][i % a[0].length]);
}
System.out.println(Arrays.toString(b));
System.out.println(arrayList);
}
}
우선 결과 코드입니다.
우선 몫과 나머지에 대한 이해가 좀 필요했습니다.
우리는 보통 2차원 배열에서 1차원 배열로 만드는 생각은 잘 하지 않았던 것 같아요.
약간 n진수 만드는 느낌으로 생각하면 될 것 같습니다.
위의 예에서 보면, 행 = 2, 열 = 3으로 2 X 3 행렬입니다.
총 6개의 값들이 1차원 배열에 들어가야 합니다.
그걸 따져보자면,
0/3 = 0
0%3 = 0
1/3 = 0
1%3 = 1
2/3 = 0
2%3 = 2
3/3 = 1
3%3 = 0
쭉쭉쭉 하다보면 (0,0) (0,1) (0,2) (1,0) ... 의 모습을 볼 수 있습니다.
그래서 출력을 해보면
↓
이와 같다는 것을 알 수 있습니다.
감사합니다.
화이팅!
728x90
'Computer Science > 자료구조' 카테고리의 다른 글
[자료구조] JAVA로 구현해보는 자료구조 (0) | 2021.11.15 |
---|---|
[자료구조] Graph (0) | 2021.10.27 |
[자료구조] Undirected Graph - 2차원 배열 (0) | 2021.10.27 |
[자료구조] Linked List (0) | 2021.10.26 |
[자료구조] Array (0) | 2021.10.25 |
댓글