백준 아름다운 수

KIMYEONGJUN·2024년 11월 20일
0
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

첫째 줄에는 테스트 케이스의 개수 T가 주어진다.
다음 줄부터는 아름다운 정도를 알고 싶은 수 X(1 ≤ X ≤ 1000000000)가 주어진다.

각각의 테스트 케이스마다 X의 아름다운 정도를 한 줄에 하나씩 입력으로 주어진 순서대로 출력한다.

내가 이 문제를 보고 생각해본 부분

BufferedReader를 사용하여 표준 입력을 효율적으로 읽는다.
StringBuilder는 결과를 저장하기 위해 사용된다.
첫 번째 줄에서 테스트 케이스의 개수 T를 읽어 정수로 변환한다.
for 루프를 사용하여 각 테스트 케이스를 반복한다.
각 테스트 케이스에서 아름다운 정도를 알고 싶은 수 X를 읽는다.
HashSet<Character>를 사용하여 서로 다른 숫자를 저장한다.
문자열 X를 문자 배열로 변환한 후,
각 숫자(digit)를 HashSet에 추가한다.
HashSet은 중복을 허용하지 않기 때문에,
자동으로 서로 다른 숫자만 저장한다.
uniqueDigits.size()를 사용하여 서로 다른 숫자의 개수를 구하고,
이를 StringBuilder에 추가한다.
각 결과 뒤에는 줄바꿈 문자를 추가하여 다음 결과와 구분한다.
최종적으로 StringBuilder에 저장된 모든 결과를 한 번에 출력한다.

코드로 구현

package baekjoon.baekjoon_24;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;

// 백준 2774번 문제
public class Main843 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        int T = Integer.parseInt(br.readLine()); // 테스트 케이스 수

        for(int i = 0; i < T; i++) {
            String X = br.readLine(); // 아름다운 정도를 알고 싶은 수
            HashSet<Character> uniqueDigits = new HashSet<>();

            for(char digit : X.toCharArray()) {
                uniqueDigits.add(digit); // 서로 다른 숫자 추가
            }

            sb.append(uniqueDigits.size()).append("\n"); // 아름다운 정도는 서로 다른 숫자의 개수
        }
        System.out.print(sb); // 결과 출력
        br.close();
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글