PS/이코테

[이코테][Java] 문자열 재정렬

nyrimmm 2024. 11. 19. 15:10

문제 설명

알파벳 대문자와 숫자(0 ~ 9)로만 구성된 문자열이 입력으로 주어질 때, 모든 알파벳을 오름차순으로 정렬해서 출력한 후 그 뒤에 모든 숫자를 더한 값을 이어서 출력합니다.

 입력조건

  • 하나의 문자열 S(1 <= S의 길이 <= 10,000)

출력조건

  • 문제에서 요구하는 정답 출력

입출력 예시

  • 입력예시 출력예시
    K1KA5CB7 ABCKK13
    AJKDLSI412K4JSJ9D ADDIJJJKKLSS20

 

 

 

 

문제 풀이

  • 입력받은 문자열 S에서 알파벳과 숫자를 구분해서 알파벳은 오름차순 정렬, 숫자는 모두 더해서 출력한다.
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;

public class Main {

    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        String str = br.readLine();

        int sum = 0;
        ArrayList<Character> array = new ArrayList<>();
        for (int i = 0; i < str.length(); i++) {
            if (str.charAt(i) >= 'A' && str.charAt(i) <= 'Z') {
                array.add(str.charAt(i));
            } else {
                sum += str.charAt(i) - '0';
            }
        }

        Collections.sort(array);

        for (int i = 0; i < array.size(); i++) {
            bw.write(array.get(i));
        }
        
        if (sum != 0) {
            bw.write(sum+ "\n");
        }
        bw.flush();
        bw.close();
    }
}

 

[참고서적]

이것이 취업을 위한 코딩 테스트다 with 파이썬 by 나동빈