알파벳 대문자와 숫자 (0~9)로만 구성된 문자열이 입력으로 주어집니다. 이때 모든 알파벳을 오름차순으로 정렬하여 이어서 출력한 뒤에, 그 뒤에 모든 숫자를 더한 값을 이어서 출력합니다.
예를 들어 K1KA5CB7이 입력으로 들어오면, ABCKK13을 출력합니다.
[입력 조건]
1. 첫째 줄에 하나의 문자열 S가 주어집니다. (1 <= S의 길이 <= 10,000)
입력 예시1:
K1KA5CB7
출력 예시1:
ABCKK13
입력 예시2:
FDSARQWER13579
출력 예시2:
ADEFQRRSW25
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
public class Main {
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
ArrayList<String>list = new ArrayList<>();
int sum = 0;
for(int i = 0 ; i < str.length() ;i++){
if(str.charAt(i) -'0' >= 0 && str.charAt(i) -'0' <= 9) sum += str.charAt(i) -'0';
else list.add(Character.toString(str.charAt(i)));
}
Collections.sort(list);
StringBuilder sb = new StringBuilder();
for(int i = 0; i < list.size(); i++){
sb.append(list.get(i));
}
sb.append(sum);
String str2 = sb.toString();
System.out.println(str2);
}
}
나는 이문제를 문자이면 list에 넣고 숫자이면 더하는 방법으로 풀어보았다. 그리고 list 를 정렬하고 StringBuilder에 값을 넣어준다음 출력해주었다.