본문 바로가기

프로그래밍 언어/C#

2차 배열과 그 안의 값을 교환해보기

 4x4 16개의  정수를 담을 수 있는 2차원 배열을 만든 후,
 반복문을 이용하여 3의 배수들로 채워 넣는다.
 그 후 2행3열 요소와 3행 2열 요소를 바꾼 후 출력하여보자
 
 1. int형 2차원 배열을 선언
 2. 반복문을 통하여 순서대로 3의 배수들로 채워넣음
 3. 2행3열 요소와 3행 2열 요소를 바꾼다
 4. 4x4의 형태로 들어있는 숫자들을 출력             

 

            int[,] num = new int[4, 4];
            int temp = 0;

            int index = 1;

            for (int i = 0; i < num.GetLength(0); i++)
            {
                for (int j = 0; j < num.GetLength(1); j++)
                {
                    num[i, j] = 3 * index; //3의 배수니까?
                    index++;
                }
            }

            //변경전
            Console.WriteLine("내용물 변경 전 3의 배수 2차배열 출력");
            Console.WriteLine();

            for (int i = 0; i < num.GetLength(0); i++)
            {
                for (int j = 0; j < num.GetLength(1); j++)
                {
                    Console.Write("\t [" + num[i, j] + "] \t");
                }
                Console.WriteLine();
            }

            Console.WriteLine();
            Console.WriteLine();

            temp = num[2, 3];
            num[2, 3] = num[3, 2];
            num[3, 2] = temp;

            Console.Write("변경할 2행 3열 : \t [" + num[2, 3] + "] \t");
            Console.WriteLine();
            Console.WriteLine();

            Console.Write("변경할 3행 2열 : \t [" + num[3, 2] + "] \t");

            Console.WriteLine();
            Console.WriteLine();

            //변경후
            Console.WriteLine("내용물 변경 후 3의 배수 2차배열 출력");
            Console.WriteLine();

            for (int i = 0; i < num.GetLength(0); i++)
            {
                for (int j = 0; j < num.GetLength(1); j++)
                {
                    Console.Write("\t [" + num[i, j] + "] \t");
                }
                Console.WriteLine();
            }

 

2차 배열을 배우고 바로 써먹어 봤다!

 

배열의 인덱스 관리도 관리지만 

 

GetLength(0) <- 요거 요거 처음엔 아~그렇구나 하고 넘어갔다가 문제를 풀려고하니 처음엔 떠오르질 않더라..

 

이거랑 2차배열 내부항목을 꺼내는  Console.Write("\t [" + num[i, j] + "] \t"); 이런코드를 쓰면서 인덱스 관리가 점점 힘들어지겠구나~ 싶었다.

 

그리고 문제의 3의 배수 넣기인데, 하다보니깐 실수로 3의 승을 넣어서 처음엔 int 가 터져서 깜짝놀랐다.

 

그 후에 넣은 index  이걸로 3을 순차적으로 늘려서 3의 배수로 설정했다. 

 

사실 for문 안에있는 i j 로 어찌 될까? 싶어서 요래 조래 만져봤지만... 가능은 한데 너무 복잡해져서 그냥 index로 회귀!

 

만약 쉬운 방법을 아신다면 댓글에 답장좀 부탁드립니다..!

 

아무튼 이런식으로 고민하면서 풀어서 나온 결과값..!

 

 

처음엔 뭐가 바꼇는지 암산해야하길래 바로 포기하고

 

암산보다 재밌는 코딩을 해서 바로 보이게 샤샥!

 

그리고 바뀐값으로 한번더 샤샥!

 

\t 정말 좋은거같다... 이쁘게 잘나와서 만족!

 

그럼 이만!