알고리즘/[코드업] 기초 100제

[JAVA] CodeUp 1083 : [기초-종합] 3 6 9 게임의 왕이 되자!(설명)

Art Rudy 2021. 7. 31. 22:47
728x90
반응형

https://codeup.kr/problem.php?id=1083 

 

[기초-종합] 3 6 9 게임의 왕이 되자!(설명)

C언어기초100제v1.2 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요.  - 모든 내용

codeup.kr

문제 분류 : 기초4-1. 단순 반복문

문제 설명

3 6 9 게임을 하던 영일이는 3 6 9 게임에서 잦은 실수로 계속해서 벌칙을 받게 되었다.
3 6 9 게임의 왕이 되기 위한 마스터 프로그램을 작성해 보자.

참고
중첩의 원리
반복 실행 구조 안에 선택 실행 구조를 자유롭게 중첩할 수 있다.

예시
int i;
for(i=1; i<=100; i++) //1부터 100까지 반복
{
  if(i%3==0 || i%5==0) printf("%d ", i); //3또는 5의 배수인 경우 그 수 출력
}

** 3 6 9 게임은?
여러 사람이 순서를 정해 순서대로 수를 부르는 게임이다.
만약 3, 6, 9 가 들어간 수를 자신이 불러야 하는 상황이면, 대신 "박수" 를 쳐야 한다.
33까지 진행했다면? "짝짝"과 같이 박수를 두 번 치는 형태도 있다.

입력

10 보다 작은 정수 1개가 입력된다.
(1 ~ 9)

출력

1 부터 그 수까지 순서대로 공백을 두고 수를 출력하는데,
3 또는 6 또는 9인 경우 그 수 대신 영문 대문자 X 를 출력한다.

입력 예시

9

출력 예시

1 2 X 4 5 X 7 8 X

도움말

 

 

내 답안

import java.util.InputMismatchException;
import java.util.Scanner;

public class Main {

  public static int getNum (int i) {
    int j = 0;

    while (i > 0) {
      if (i % 10 == 3 || i % 10 == 6 || i % 10 == 9) {
        j++;
      }
      i /= 10;
    }
    return j;
  }

  public static void main(String[] args) {

    Scanner sc = new Scanner(System.in); 
    try {
      int iNum = sc.nextInt();

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

        if (cnt == 0) {
          System.out.print(i+ " ");
        }
        else {
          for (int l = 0; l < cnt; l++) {
            System.out.print("X");
          }
          System.out.print(" ");
        }
      }
    } catch (InputMismatchException e) {
      System.out.println("정수만 입력 가능");
    }

  }
}
728x90
반응형