내가 생각했을때 문제에서 원하는부분
입력은 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();
}
}
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.