Post

Java 예제: 369 시뮬레이션

3.6.9 게임 시 언제 ‘짝’(박수)을 쳐야되는지 알아보는 시뮬레이션 프로그램

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
import java.util.Scanner;

public class Samyukgu {

  public static void main(String[] args) {
    // 3, 6, 9가 포함된 숫자는 다 '짝'으로 표시
    // 33: 짝짝
    try(Scanner s = new Scanner(System.in);){

      String[] players = {"철수", "영희", "길동", "한무", "두루",
          "갑자", "하나", "을동", "길수", "애리"};

      System.out.print("☞ 3 6 9 시뮬레이션, 총 몇 번까지? >> ");
      int totalNum = Integer.parseInt(s.nextLine());
      System.out.print("☞ 게임에 참여하는 인원수? (10명까지 가능) >> ");
      int totalPlayerNum = Integer.parseInt(s.nextLine());

      if(totalPlayerNum <= 0 || totalPlayerNum >= 11) {
        System.err.println("인원수는 1 ~ 10 사이에서 입력해주세요.");
        System.exit(1);
      }

      int playerCount = 0;
      for(int i=1; i <= totalNum; i++ ) {
        char[] tempArray = String.valueOf(i).toCharArray();    
        // 숫자를 쪼개 char 배열에 저장
        int sygCount = 0;

        for(int j=0; j < tempArray.length; j++) {
          if(tempArray[j] == '3' || tempArray[j] == '6'
              || tempArray[j] == '9') {
            sygCount++;    // 쪼갠 숫자 각각에 3, 6, 9가 있는 경우 그 개수를 카운트
          }                
        }

        if(playerCount == totalPlayerNum) {
          playerCount = 0;					
        }
        System.out.print(players[playerCount++] + ": ");

        if (sygCount == 0) {

          System.out.println(i);
        } else {
          for(int k=1; k <= sygCount; k++)    
            // i에 3, 6, 9가 있는 경우 그 개수만큼 '짝'을 표시함
            System.out.print("짝");
          System.out.println();
        }

      }
    }catch(Exception e) {
      e.printStackTrace();
    }

  }
}
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
☞ 3 6 9 시뮬레이션, 총 몇 번까지? >> 40
☞ 게임에 참여하는 인원수? (10명까지 가능) >> 10
철수: 1
영희: 2
길동: 짝
한무: 4
두루: 5
갑자: 짝
하나: 7
을동: 8
길수: 짝
애리: 10
철수: 11
영희: 12
길동: 짝
한무: 14
두루: 15
갑자: 짝
하나: 17
을동: 18
길수: 짝
애리: 20
철수: 21
영희: 22
길동: 짝
한무: 24
두루: 25
갑자: 짝
하나: 27
을동: 28
길수: 짝
애리: 짝
철수: 짝
영희: 짝
길동: 짝짝
한무: 짝
두루: 짝
갑자: 짝짝
하나: 짝
을동: 짝
길수: 짝짝
애리: 40
This post is licensed under CC BY 4.0 by the author.