백준 등장하지 않는 문자의 합

KIMYEONGJUN·2025년 4월 1일
0
post-thumbnail

문제

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

입력은 T개의 테스트 데이터로 구성된다.
입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다.
각 테스트 데이터는 한 줄로 구성되어 있고, 문자열 S가 주어진다.
S는 알파벳 대문자로만 구성되어 있고, 최대 1000글자이다.

각 테스트 데이터에 대해, 입력으로 주어진 문자열 S에 등장하지 않는 알파벳 대문자의 아스키 코드 값의 합을 한 줄에 하나씩 출력한다.

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

입력 처리: BufferedReader를 사용하여 입력을 받는다.
문자 등장 여부 기록: boolean 배열을 사용하여 각 알파벳 대문자가 문자열에 등장했는지 기록한다.
아스키 코드 합 계산: 등장하지 않은 문자에 대해 아스키 코드 값을 계산하여 합을 구한다.
출력: StringBuilder를 사용하여 결과를 저장한 후, 한번에 출력한다.

코드로 구현

package baekjoon.baekjoon_27;

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

// 백준 3059번 문제
public class Main978 {
    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 S = br.readLine();
            boolean[] appeared = new boolean[26];

            // 문자열 S에 등장한 문자 기록
            for(char c : S.toCharArray()) {
                appeared[c - 'A'] = true;
            }

            int sum = 0;
            // 등장하지 않은 문자에 대한 아스키 코드 값의 합 계산
            for(int j = 0; j < 26; j++) {
                if(!appeared[j]) {
                    sum += (j + 'A');
                }
            }

            sb.append(sum).append("\n");
        }

        System.out.print(sb);
        br.close();
    }
}

마무리

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

profile
Junior backend developer

0개의 댓글

관련 채용 정보