티스토리 뷰

1)  n단의 숫자 피라미드 출력하기

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.Scanner;
 
public class TriangleEx {
    
    static void pira(int n) {
        for(int i=1; i<=n; i++) { //i행
            for(int j=1; j<=n-i; j++// n-i개의 공백 출력
                System.out.print(' ');
            for(int j=1; j<=2*i-1; j++//2*i-1개의 숫자 출력
                System.out.print(i%10);
            System.out.println();
        }
    }
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.print("정수를 입력하세요>>");
        int n = scan.nextInt();
        pira(n);
        scan.close();
    }
 
}
cs

 

<실행 결과>

 

 

 

 

2) 빙고 게임

 

- 임의의 숫자(1~50)로 구성된 빙고판 생성

- 빙고판의 숫자와 일치하는 숫자 입력시 *로 변경

- 5줄이 완성되면 게임 종료

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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import java.util.Random;
import java.util.Scanner;
 
public class BingoGame {
    public static void main(String[] args) {
        Random random = new Random();
        int[][] array = new int[5][5];
        int index = 0//중복체크용
        boolean isBingo = false;
        Scanner scan = new Scanner(System.in);
        for(int i=0; i<array.length; i++) {
            for(int j=0; j<array[i].length; j++) {
                do {
                    index = random.nextInt(50)+1;
                }while(checkNum(array,index));
                    array[i][j] = index;
            }
        }
        
        for(int i=0; i<array.length; i++) {
            for(int j=0; j<array[i].length; j++) {
                System.out.printf("%2d ", array[i][j]);
            }
            System.out.println();
        }
        
        while(!isBingo) {
            System.out.print("숫자를 입력하세요>>");
            int num = scan.nextInt();
            for(int i=0; i<array.length; i++) { //일치하는 숫자가 있으면 -1로 변경
            for(int j=0; j<array[i].length; j++) {
                if(array[i][j]==num)
                    array[i][j] = -1;
                }
            }
            
            for(int i=0; i<array.length; i++) {
                for(int j=0; j<array[i].length; j++) {
                    if(array[i][j]==-1)
                        System.out.printf("%2s ",'*'); //-1이면 별표(*) 표시
                    else
                        System.out.printf("%2d ", array[i][j]); //-1 아니면 숫자 그대로 표시
                }
                System.out.println();
            }
            if (checkBingo(array)>=5) { //빙고가 5개 이상이면 while문 종료
                isBingo = true;
                System.out.println("빙고! 게임 종료!");
            }
        }
        scan.close();
    }
 
    //빙고 체크
    private static int checkBingo(int[][] array) {
        int num = 0;
        int bingoNum = 0;
    
        for(int i=0; i<array.length; i++) {
            for(int j=0; j<array[i].length; j++) { //가로빙고 체크
                if(array[i][j]==-1)
                    num++;
            }
            if(num==5) {
                bingoNum++;
            }
            num=0;
            for(int j=0; j<array[i].length; j++) { //세로빙고 체크
                if(array[j][i]==-1)
                    num++;
            }
            if(num==5) {
                bingoNum++;
            }
            num=0;
        }
        //대각선 빙고 체크
        if(array[0][0]==-1 && array[1][1]==-1 && array[2][2]==-1 && array[3][3]==-1 && array[4][4]==-1)
            bingoNum++;
        if(array[0][4]==-1 && array[1][3]==-1 && array[2][2]==-1 && array[3][1]==-1 && array[4][0]==-1)
            bingoNum++;
        
        return bingoNum;
    }
 
    private static boolean checkNum(int[][] array, int index) { //배열에 난수 저장시 중복 체크
        for(int i=0; i<array.length; i++) {
            for(int j=0; j<array[i].length; j++) {
                if(array[i][j] == index)
                    return true//중복 시 true 반환
            }
        }
        return false//중복 없을시 false 반환
    }
 
}
 
cs

 

<실행 결과>

'알고리즘' 카테고리의 다른 글

[알고리즘] 재귀호출 (피보나치 수열, 구구단)  (0) 2024.03.06
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/04   »
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
글 보관함