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

KIMYEONGJUN·2025년 4월 1일
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개의 댓글