정보처리기사를 준비하셨던 분들은 ㄹ자로 정렬하는 문제를 접해보셨을 텐데요. 오늘은 java ㄹ자 출력(지그재그) 방법에 대해서 알아보겠습니다.
일단 사용자로 부터 입력받은 숫자에 제곱을 한 숫자만큼 출력하되 이를 지그재그 형태 즉, ㄹ자 형태로 한번 출력해 보겠습니다.
1. 예제 소스
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class zigzag { public static void main(String[] args) throws IOException { System.out.print("숫자 입력 ->" ); BufferedReader kbd = new BufferedReader(new InputStreamReader(System.in)); //사용자로 부터 숫자를 입력 받기 위해 BufferedReader를 사용. int a =Integer.parseInt((kbd.readLine())); //입력 받은 숫자를 parseInt를 이용하여 정수형태로 바꿔 a에 저장. int[][] number = new int[a][a]; ///입력받은 숫자의 형태로 배열을 생성 int count = 1; //배열안에 차례대로 들어갈 숫자 int j=0; for(int i=0; i<=a-1; i++){ //행의 갯수 즉 사용자로부터 3을 입력받으면 // number[0][],[1][],[2][]까지 수행됨 if ((i%2)==0){ //count의 숫자가 입력되는 진행 방향을 결정 i를 2로 나눠서 0일경우 for(j =0; j<=a-1; j++){ // ---> 방향으로 진행 배열[i][a-1] 즉 3을 입력받으면 [0][0]~[0][2]까지 number[i][j]=count; //count 값을 증가시키면서 해당 배열방에 저장함 count++; } }else{ //count의 숫자가 입력되는 진행 방향을 결정 i를 2로 나눠서 0일 아닐경우 // 만약 i값이 1이라면 for(j =a-1; j>=0; j--){ //[1][a-1] 즉 [1][2]~[1][0] 방까지 number[i][j]=count; // count값을 증가시키면서 차례대로 방에 넣는다. count++; } } } for (int k=0; k<=a-1; k++){ //배열의 행에 해당 for (int l=0; l<=a-1; l++){ // 배열의 열에 해당 System.out.print(number[k][l]+"\t"); // 저장된 값을 차례대로 출력한다 } System.out.println(); } } }
2. 간단 설명
- 사용자가 입력산 숫자*숫자 만큼의 정수를 0부터 차례대로 출력
- 배열의 행에 따라 출력 되는 방향을 결정
- 차례대로 배열에 저장후 한꺼번에 출력
3. 결과
100을 입력하고 수행된 결과입니다.
4. 추가 사항
이 예제는 사용자의 숫자에 따라 배열방이 결정됩니다.
만약 사용자가 100입력게 되면 총 10000개의 숫자가 출력되게 됩니다.