개발인생/Altorithm

[알고리즘 기초 100제] 15. 369게임

forri 2025. 3. 12. 17:38

✔️문제

- 100까지 369 게임을 아래와 같이 진행하시오.

- 정답:

1 2 짝 4 5 짝 7 8 짝 10 11 12 짝 14 15 짝 17 18 짝 20 21 22 짝 24 25 짝 27 28 짝 짝 짝 짝 짝짝 짝 짝 짝짝 짝 짝 짝 40 41 42 짝 44 45 짝 47 48 짝 50 51 52 짝 54 55 짝57 58 짝 짝 짝 짝 짝짝 짝 짝 짝짝 짝 짝 짝짝 70 71 72 짝 74 75 짝 77 78 짝 80 81 82 짝 84 85 짝 87 88 짝 짝 짝 짝 짝짝 짝 짝 짝짝 짝 짝 짝짝 100


📍정답

package _15_369game;

public class Main {

  public static int getNum(int i) {
    int j=0; //i가 3,6,9 몇개인지 cnt해주는 변수
    int n = 100;
  
    while (i>0) { 
        if(i%10==3 || i%10==6 ||i%10==9)
        j++;
        i /=10;
    }

    return j;
  }

  public static void main(String[] args) {
    
    int n = 100;

    for(int i=1;i<n;i++) {
      int cnt = getNum(i);

      if (cnt == 0) { //369 아닌경우
          System.out.print(i+" ");
      } else { //369면
          for (int k=0;k<cnt;k++) {
              System.out.print("짝");
          } 
          System.out.print(" ");
      }

    }


  }
}

정수 자릿수 하나씩 추출하기

더보기

int n = 1245;

while (n > 0) {
    int digit = n % 10; // 마지막 자리 숫자 추출
    if (digit % 3 == 0) {
        System.out.println(digit + " : 나머지 0");
    }
    n /= 10; // 10으로 나누어 자리수를 줄임
}

package _15_369game;

public class Main2{

    public static void main(String[] args) {
        int count = 0; // 한 줄에 10개씩 출력하기 위한 카운터
        
        for (int i = 1; i <= 100; i++) {
            String numberStr = String.valueOf(i); // 숫자를 문자열로 변환
            int clapCount = 0; // "짝"을 출력할 횟수
            
            // 각 자리 숫자 검사
            for (char ch : numberStr.toCharArray()) {
                if (ch == '3' || ch == '6' || ch == '9') {
                    clapCount++; // 3, 6, 9가 포함될 때마다 증가
                }
            }
            
            // "짝"을 clapCount 횟수만큼 출력, 없으면 숫자 출력
            if (clapCount > 0) {
                System.out.print("짝".repeat(clapCount) + " ");
            } else {
                System.out.print(i + " ");
            }
            
            count++; // 출력된 숫자 개수 증가
            if (count % 10 == 0) {
                System.out.println(); // 10개 출력 후 줄 바꿈
            }
        }
    }
}