본문 바로가기

Java Programming

2차원 배열을 이렇게 배웠습니다!!

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
오늘 프로그래밍 입문 수업 작년 기출문제를 하나씩 둘씩 풀어보면서 다시 한번 뼈져리게 느꼈지만, 한번 해보는것이 역시나 말로 수천번하는거보다 훨씬 낫더군요, 특히 이런 코딩은 글로 아무리봐도, 말로 아무리 설명해도 한번 직접 해보는것만 못했습니다 - -;; (당연한 소리인가요..)

여튼 문제는 이겁니다!!

다음과 같은 2차원 배열 myArray 을 정의하고, 그림과 같이 내용이 값을 채워 넣는 프로그램을 작성하시오.

사용자 삽입 이미지













처음에는 이런 구조를 생각하고 있었습니다.

사용자 삽입 이미지













물론 처음 생각한 구조가 아니었죠.. 말하자면 4개의 배열이 존재하고 그 4개의 배열은 4,4,5,6 개의 공간을 가지고 있는 2차원 배열인거죠. 처음에는 좀 난감했습니다. 불규칙적인 갯수를 가진 배열을 어떻게 만들수 있을까? 그전에 만들었던 규칙적인 갯수를 가진 배열은 쉽게 만들었지만.. 이건 말 그대로 응용판이더군요..

어쨌든 하드코딩을 한 끝에 만들어냈습니다.
물론 개판 오분전 코드죠.. 혹시나 궁금하신분이 있을까해서 링크합니다 ㅋ


하지만 생각보다 간단하게 풀렸습니다 ^^;; 약간의 도움도 받았구용..
이렇게 해결했습니다.. 더 좋은 방법이 있는지는 모르겠지만요-

public class MyArrayTest {
   public static void main(String[] args) {
       int[][] myArray = new int[4][];
       int count = 1;
       for (int i = 0; i < myArray.length; i++) {
           if (i == 0) {
               myArray[i] = new int[4];
           } else if (i != 0) {
               myArray[i] = new int[3 + i];
           }
           for (int j = 0; j < myArray[i].length; j++) {
               myArray[i][j] = count++;
           }
       }
       for (int i = 0; i < myArray.length; i++) {
           System.out.println();
           for (int j = 0; j < myArray[i].length; j++) {
               System.out.printf("[" + myArray[i][j] + "]");
           }
       }
   }
}