본문 바로가기

CodingTEST

[SW Expert D2] 1926. 간단한 369게임

반응형

1926. 간단한 369게임

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

문제 분석

 

  • 숫자를 입력받으면 1부터 해당 숫자까지 369 게임 결과를 출력한다.
    • 박수를 쳐야하는 경우 '-' 로 표시
      EX) 2번 쳐야하는 경우 '--' 로 표시

 

해결 포인트

 

  • 숫자를 입력받고 한자리씩 확인
    • 필자는 i를 10씩 곱해가며 int newNum = num / i % (i * 10); 로 한자리씩 확인하였다.
  • 해당 자리 수가 3으로 나누어떨어질 경우 박수쳐야함 : '-' 출력
  • 369에 포함되지 않을 경우 수를 출력해야하므로 포함되는지 여부 확인 : is369

 

코드

 

import java.util.Scanner;

class Solution
{
    public static void main(String args[]) throws Exception {
        Scanner sc = new Scanner(System.in);
        int T;
        T = sc.nextInt();

        for (int test_case = 1; test_case <= T; test_case++) {

            int num = test_case;
            boolean is369 = false;

            for (int i = 1; i < num; i *= 10) {
                int newNum = num / i % (i * 10);
                if (newNum != 0 && newNum % 3 == 0) {
                    System.out.print("-");
                    is369 = true;
                }
            }

            if (!is369)
                System.out.print(num);

            System.out.print(" ");
        }
    }
}

 

반응형