Algorithm/BOJ(Baekjoon Online Judge)
[백준 - 3059번] 등장하지 않는 문자의 합 - Java //Wello Horld//
koucop
2019. 8. 14. 15:24
이번에는 BOJ의 3059번 문제 "등장하지 않는 문자의 합" 을 풀어보도록 하자
총 대문자의 개수 26개 만큼의 boolean 배열을 만들어 주고, 수학적으로 문자열 S에 등장하지 않는 알파벳 대문자의 아스키 코드 값을 ans에 더해주는 방식으로 문제를 풀었다.
성공한 코드는 아래와 같다
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine());
for(int i = 0; i < T; i++){
String line = br.readLine();
boolean[] alpha = new boolean[26];
for(int j = 0; j < line.length(); j++){
if(!alpha[line.charAt(j) - 'A']) alpha[line.charAt(j) - 'A'] = true;
}
int ans = 0;
int cnt = 0;
for(int j = 0; j < alpha.length; j++){
if(!alpha[j]){
ans += j;
cnt++;
}
}
ans += cnt * 65;
bw.write(ans + "\n");
}
bw.flush();
br.close();
bw.close();
}
}
문제 : https://www.acmicpc.net/problem/3059
3059번: 등장하지 않는 문자의 합
입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성되어 있고, 문자열 S가 주어진다. S는 알파벳 대문자로만 구성되어 있고, 최대 1000글자이다.
www.acmicpc.net