구현 - 2. 문자열 재정렬

LEE ·2022년 4월 14일
0

알고리즘 기출문제

목록 보기
8/60

문제

알파벳 대문자와 숫자 (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에 값을 넣어준다음 출력해주었다.

0개의 댓글

관련 채용 정보