자바알고리즘 - 구현 - 문자열 재정렬
문제
알파벳 대문자와 숫자(0~9)로만 구성된 문자열이 주어진다.
이때 모든 알파벳을 오름차순으로 정렬하여 출력한뒤 다음에는 모든 숫자를 더한 값을 이어서 출력한다.
ex) K1KA5CB7 이면 ABCKK13이다.
길이는 1 ~ 100000 이다. O(N2) 넘기않기
해결방안
아스키 코드표를 이용하여 String을 쪼개서 대문자 -> 65 ~ 90 사이면 새로운 char배열에 아니면 숫자임.
마지막에 합쳐서 출력
코드
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String st = bf.readLine();
char[] ch = new char[st.length()]; //문자열을 담기위한 빈 배열
int num = 0;//숫자를 더하기 위한 변수
for(int i=0 ; i<st.length(); i++) {
if(65<= (int)st.charAt(i) && (int)st.charAt(i) <=90) { //영어 대문자일때
ch[i] = st.charAt(i);
System.out.println("1");
}
else { //숫자 일때
num += st.charAt(i) - '0';
}
}
Arrays.sort(ch); //오름차순정리
String result = String.valueOf(ch);
// System.out.println(result);
System.out.println(result +Integer.toString(num));
'알고리즘 > 구현' 카테고리의 다른 글
이것이 코딩 테스트다 - chapter04 - 예제4-2 시각 , 백준 자바 18312 시각 (1) | 2024.10.12 |
---|---|
이것이 코딩 테스트다 - chapter04 - 예제4-1 상하좌우 (0) | 2024.10.12 |
자바알고리즘 - 구현 - 자물쇠와 열쇠 (0) | 2024.02.02 |
자바알고리즘 - 구현 - 문자열 압축 (0) | 2024.01.29 |
자바알고리즘 - 구현 - 럭키스트라이크 (0) | 2024.01.18 |