[SWEA] (D2) 1926. 간단한 369게임

2024. 10. 23. 02:37·코딩테스트/SWEA

3 6 9 게임을 프로그램으로 제작중이다. 게임 규칙은 다음과 같다.

 

1. 숫자 1부터 순서대로 차례대로 말하되, “3” “6” “9” 가 들어가 있는 수는 말하지 않는다.

  1 2 3 4 5 6 7 8 9…

2. "3" "6" "9"가 들어가 있는 수를 말하지 않는대신, 박수를 친다. 이 때, 박수는 해당 숫자가 들어간 개수만큼 쳐야 한다.  
예를 들어 숫자 35의 경우 박수 한 번, 숫자 36의 경우 박수를 두번 쳐야 한다.
 

입력으로 정수 N 이 주어졌을 때, 1~N 까지의 숫자를

게임 규칙에 맞게 출력하는 프로그램을 작성하라.

박수를 치는 부분은 숫자 대신, 박수 횟수에 맞게 “-“ 를 출력한다.

여기서 주의해야 할 것은 박수 한 번 칠 때는 - 이며, 박수를 두 번 칠 때는 - - 가 아닌 -- 이다. 
 

[제약사항]

N은 10이상 1,000이하의 정수이다. (10 ≤ N ≤ 1,000)

 

[입력]

입력으로 정수 N 이 주어진다.


[출력]

1 ~ N까지의 숫자를 게임 규칙에 맞게 출력한다.

 

[풀이]

1을 우선 출력해준다.

 

2부터 반복문을 시작하고, 숫자를 String으로 바꾼다.

 

3,6,9가 있을 때 박수칠 횟수를 셀 count도 0으로 선언한다.

 

String 으로 변환한 숫자를 한글자씩 보면서 3,6,9가 있다면 count를 올려준다.

 

count가 0이라면? 그냥 숫자를 출력한다.

 

0이 아니라면 count 횟수만큼 -를 출력한다.

import java.util.*;
import java.lang.*;
import java.io.*;

class Main  {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int number = Integer.parseInt(br.readLine());

        System.out.print("1");
        for(int i = 2 ; i <= number ; i++){
            String numberToStr = String.valueOf(i);
            int count = 0;
            for(int j = 0 ; j < numberToStr.length() ; j++){
                char num = numberToStr.charAt(j);
                if(num == '3' ||
                  num == '6'||
                  num == '9')
                    count++;
            }

            if(count == 0)
                System.out.print(" " + i);
            else{
                System.out.print(" ");
                for(int k = 0 ; k < count ; k++)
                    System.out.print("-");
            }
        }
        }
    }

 

문제 출처 : https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5PTeo6AHUDFAUq&categoryId=AV5PTeo6AHUDFAUq&categoryType=CODE&problemTitle=&orderBy=PASS_RATE&selectCodeLang=JAVA&select-1=2&pageSize=10&pageIndex=2

 

SW Expert Academy

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

swexpertacademy.com

 

'코딩테스트 > SWEA' 카테고리의 다른 글

[SWEA] (D2) 1288. 새로운 불면증 치료법  (1) 2024.10.25
[SWEA] (D2) 1979. 어디에 단어가 들어갈 수 있을까  (0) 2024.10.25
[SWEA] (D2) 1948. 날짜 계산기  (0) 2024.10.23
[SWEA] (D2) 1966. 숫자를 정렬하자  (0) 2024.10.22
[SWEA] (D2) 1959. 두 개의 숫자열  (3) 2024.10.22
'코딩테스트/SWEA' 카테고리의 다른 글
  • [SWEA] (D2) 1288. 새로운 불면증 치료법
  • [SWEA] (D2) 1979. 어디에 단어가 들어갈 수 있을까
  • [SWEA] (D2) 1948. 날짜 계산기
  • [SWEA] (D2) 1966. 숫자를 정렬하자
l0o0lv(한동근)
l0o0lv(한동근)
  • l0o0lv(한동근)
    개발하는 와플대조교
    l0o0lv(한동근)
  • 전체
    오늘
    어제
    • 분류 전체보기 (60)
      • SpringBoot (10)
      • 잡다한 개발지식 (1)
      • 코딩테스트 (47)
        • SWEA (43)
        • 프로그래머스 (0)
        • 백준 (4)
      • 알고리즘 (1)
      • 회고 (0)
      • 운동 (0)
  • 링크

    • Github
  • 인기 글

  • 최근 글

  • 태그

    어려웠던 문제
    springboot
    prepersist
    MSA
    coolsms
    gitlab
    알고리즘
    무중단 배포
    websocket
    SWEA
    jenkins
    리버스 프록시
    실시간 쪽지
    cloudtype
    합 배열
    EUREKA
    백준
    구간 합
    webhook
    ec2
  • hELLO· Designed By정상우.v4.10.0
l0o0lv(한동근)
[SWEA] (D2) 1926. 간단한 369게임
상단으로

티스토리툴바