본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q2011 : 369게임 2

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q2011 : 369 게임 2 (자바, JAVA)입니다.

Intro

Question

문제 설명

시작 수(a)와 마지막 수(b)가 입력되면 그 범위의 369게임의 올바른 답을 출력하시오.

※ 369게임의 룰은 다음과 같다.

  1. 시작수와 마지막수까지의 369게임의 올바른 답을 출력한다.
  2. 한 줄에 하나의 결과를 출력한다.
  3. 369에 해당될 경우 3이나 6이나 9가 들어간 개수만큼 "K"를 출력한다.
  4. 그 외의 숫자들은 그냥 그대로 출력한다.

입력

시작 수 a와 마지막 수 b가 공백을 기준으로 입력된다.
(1 <= a <= b <= 100,000)

출력

출력 예시를 참고하여 출력한다.

예시

  • 입력 : 3 16
  • 출력 :
    K
    4
    5
    K
    7
    8
    K
    10
    11
    12
    K
    14
    15
    K

Solution (풀이)

  • 풀이 : 메모리 56160, 시간 : 280
public class Answer1 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");

        int first = Integer.parseInt(st.nextToken());
        int end = Integer.parseInt(st.nextToken());

        for (int i=first; i<=end; i++) {
            int count = 0;

            for (int j=0; j<String.valueOf(i).length(); j++) {
                char index = String.valueOf(i).charAt(j); // j번째 자리의 숫자가
                if (index == '3' || index == '6' || index == '9') { // 3의 배수일떄 count++
                    count++;
                }
            }

            if (count == 0) { // count가 0 이면 i숫자를 그대로 출력
                sb.append(i).append("\n");
            } else {
                for(int j=0; j<count; j++) { // count만큼(3의 배수만큼) K찍기
                    sb.append("K");
                }
                sb.append("\n");
            }
        }

        System.out.println(sb);
    }

}

Ranking(순위)

반응형