알고리즘 기초 - 11 (N행 N열 사각형 출력 (ㄹ자 모양으로))

Algorithm/풀었던문제 2019. 12. 12. 13:58

 

 

10번과는 다르게 이번에는 ㄹ자 모양으로 중첩 반복문을 사용하여 출력하여야 한다.


if문을 사용해서 분기를 만들어서 홀수행일때와 짝수행일때 서로 다른순서로 값이 출력되게 하여야 한다.


홀수행 1 2 3 4 (작은값 -> 큰값)


짝수행 8 7 6 5 (큰값 -> 작은값)

 



Main.java


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package Problem11;
 
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
 
        
        //ㄹ자 배열을 만들기 위해서 숫자 하나를 입력받는다.
        
        System.out.println("숫자를 입력하세요.");
        
        int n;
        Scanner scan = new Scanner(System.in);
        n = scan.nextInt();
        
        //입력받은 n만큼의 행과열을 가진 2차원 배열을 만든다.    
        int arr[][] = new int[n][n];
        
        
        // n=3일때
        
        //    1    2    3
        //    6    5    4
        //    7    8    9
        
        
        
        
        //짝수행일때는 위쪽 for문을 타고 홀수행일때는 아래 for문을 탄다.
        
        //Why?? 
        
        //홀수 행일때는 1 2 3 4 이런식으로 숫자가 증가하고,
        
        //짝수 행일때는 8 7 6 5 이런식으로 대 방향으로 숫자가 증가하기 때문에 if문으로 분기를 주어서 다른 for문을 사용해서 값을 변경해주어야 한다.
        
        for (int i = 0; i < n; i++) {
            if (i % 2 == 0) {
                for (int j = 0; j < n; j++) {
                    
                    arr[i][j] = i * n + j + 1;
                    
                }
            }else {
                
                for (int j = n-1; j >= 0; j--) {
                    
                    arr[i][j] = i * n + n - j;
                    
                }
                
            }
    }
        
        
        
        //위쪽 for문에는 배열안에 값을 집어넣는 것이고, 이쪽 for문은 넣은 값들을 출력하는 for문이다.
        
        for(int i = 0; i < n; i++) {
            for(int j = 0; j < n; j++) {
            
                System.out.printf("%4d", arr[i][j]);
                
            }
            
            System.out.println();
            
        }
        
        
    }
 
}
 
cs




출력 결과





출처


https://www.youtube.com/watch?v=RAHfSfIFL1M&list=PLVoihNyHW4xkm_KJ8_N8X7F6EQP4uSRyR&index=12


 

: