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();
            }
        }
    }
}

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중