2차원 배열(For문 하나로 출력)

Question

정말 초 간단한데 for문을 두개 안돌리고 한번만 돌려서 출력할 방법이 있을까요?

package naverkin;


// 이차원 배열
public class ArrayTwoDemo {

    public static void main(String[] args) {

        // 이차원 배열 선언 및 초기화
        int[][] data = {{10, 20, 30}, {40, 50, 60}};

        // for문

        for (int i = 0; i < data.length; i++) {
            for (int j = 0; j < data[i].length; j++) {
                System.out.print(data[i][j] + “\t”); // 열 출력
            }
            System.out.println(); // 행 출력
        }

    }

}

// Output:
// 10 20 30
// 40 50 60

Answer:

예전에 강의 들을 때 강사님이 퀴즈로 알려주셨던 부분인데
질문을 보니 새롭게 생각이 나서…
’/’ 연산자와 ‘%’연산자를 이용한다.

/**
 * @author Coozplz
 */
public class ArrayTwoDemo {

    public static void main(String[] args) {

        // 이차원 배열 선언 및 초기화
        int[][] data = {{10, 20, 30}
                , {40, 50, 60}
                , {40, 50, 60}};

        for (int i = 0; i < data.length * data[0].length; i++) {
            int row = i / data[0].length; // 행
            int column = i % data[0].length; // 열
            System.out.print(data[row][column] + "\t");


            if (column == data[0].length - 1) {
                System.out.println();
            }
        }
    }
}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s