[SWEA]1926. 간단한 369게임

2025. 4. 28. 17:50·알고리즘 문제풀이
반응형

문제링크

369 게임을 만들면 되는 문제이다.

보통 다른 369문제는 범위가 99까지였던 것 같은데 이건 1000까지여서 오잉? 했다.

 


풀이

import java.util.Scanner;

public class JAVA1 {

    static Scanner sc = new Scanner(System.in);

    public static void solution(int n){

        for(int i=1;i<=n;i++){
            String values = String.valueOf(i);

            if(values.contains("3") || values.contains("6") || values.contains("9")){
                for(int j=0;j< values.length();j++){
                    if(values.charAt(j)=='3' ||values.charAt(j)=='6' ||values.charAt(j)=='9'){
                        System.out.print("-");
                    }
                }
                System.out.print(" ");
            } else {
                System.out.print(i + " ");
            }

        }
    }

    public static void main(String[] args) {
            int n = sc.nextInt();
            solution(n);
    }
}

 

숫자의 자릿수를 쉽게 검사하기 위해 주어진 숫자를 대신 문자열로 변환하는 방법을 생각했다.

  • 주어진 숫자를 문자열로 변환한다.
  • 각 주어진 문자열에 3,6,9가 포함되어 있는지 1차 확인한다.
  • 그 후 포함되어 있다면 문자열의 각 자릿수에 3,6,9가 있는지 확인해 있다면 - 출력한다. 

 


다른 풀이

import java.util.Scanner;

public class JAVA1 {

    static Scanner sc = new Scanner(System.in);

    public static void solution(int n) {
        for (int i = 1; i <= n; i++) {
            int number = i;
            int count = 0;

            while (number > 0) {
                int digit = number % 10;
                if (digit == 3 || digit == 6 || digit == 9) {
                    count++;
                }
                number /= 10;
            }

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

    public static void main(String[] args) {
        int n = sc.nextInt();
        solution(n);
    }
}

 

이건 숫자 연산을 통해서 문제를 해결한 코드이다.

  • 숫자를 10으로 나누면서 각 자릿수를 뽑아낸다.
  • 뽑아낸 각 자릿수가 3, 6, 9이면 -를 출력한다.
  • 다 끝났을 때 아무 -도 없으면 원래 숫자를 출력한다.

예를 들자면 39를 처리할 때

  • 39 % 10 = 9 → 9이므로 count++
  • 39 / 10 = 3 → 3 % 10 = 3 → 3이므로 count++
  • 3 / 10 = 0 → 끝남
  • count가 2이므로 - - 출력

 

 

 

처음에는 문자열로 변환하는 접근을 했다가 숫자연산을 가지고도 풀이해 봤다.

 

반응형

'알고리즘 문제풀이' 카테고리의 다른 글

[완전탐색] 프로그래머스 - 두 개 뽑아서 더하기  (0) 2026.03.16
[완전탐색] 프로그래머스 - 모의고사  (0) 2026.03.16
[SWEA]21425. +=  (0) 2025.04.28
04. 단어 뒤집기  (0) 2025.04.25
03. 문장 속 단어  (0) 2025.04.24
'알고리즘 문제풀이' 카테고리의 다른 글
  • [완전탐색] 프로그래머스 - 두 개 뽑아서 더하기
  • [완전탐색] 프로그래머스 - 모의고사
  • [SWEA]21425. +=
  • 04. 단어 뒤집기
fkqlaus
fkqlaus
안녕하세요 Java, Spring boot 공부하는 주니어 개발자입니다
  • fkqlaus
    개발자가 끄적끄적 블로그
    fkqlaus
  • 전체
    오늘
    어제
    • 분류 전체보기 (24)
      • Spring boot (3)
      • 프레임워크 (3)
      • Java (6)
      • DevOps (3)
      • DB (1)
      • CS (1)
      • GIS (1)
      • 알고리즘 문제풀이 (9)
      • 알고리즘 (0)
  • 인기 글

  • 태그

    docker
    iterator
    프로그래머스
    spring
    데이터베이스
    SWEA
    컴퓨터
    cs
    알고리즘
    서버
    개발자
    DevOps
    db
    list
    개발
    완전탐색
    Java
    D2
    코딩테스트
    collection
  • hELLO· Designed By정상우.v4.10.3
fkqlaus
[SWEA]1926. 간단한 369게임
상단으로

티스토리툴바