본문 바로가기

문자열 내림차순으로 배치하기

programmers code review/_step1 2021. 8. 29.
728x90

프로그래머스 Java 1단계 문자열 내림차순으로 배치하기 입니다.


문제 설명

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.

 

제한 사항

  • str은 길이 1 이상인 문자열입니다.

입출력 예

s return
"Zbcdefg" "gfedcbZ"

 

문제 해결 방법

① 문자열 s를 정렬(오름차순)

※ 내림차순으로 정렬하기 위해서는 Collections.reverseOrder() 사용하여 가능

② 정렬된 문자배열의 역순으로 반환한 문자열 조합

    ⑴ 소문자 ▶ 반환할 문자열의 앞쪽에 위치

    ⑵ 대문자 ▶ 반환할 문자열의 뒤쪽에 위치

③ 역순으로 조합된 각 문자열을 반환


더보기
import java.util.Arrays;

class Solution {
    public String solution(String s) {
        String lowStr = "";
        String uppStr = "";
        char[] rtnChr = s.toCharArray();
        // ① 문자열 s를 정렬(오름차순)
        Arrays.sort(rtnChr);

        // ② 정렬된 문자배열의 역순으로 반환한 문자열 조합
        for (int i = rtnChr.length - 1; i >= 0; i--) {
        	// ⑴ 소문자 ▶ 반환할 문자열의 앞쪽에 위치
        	if (Character.isLowerCase(rtnChr[i])) {
        		lowStr += rtnChr[i];
        	// ⑵ 대문자 ▶ 반환할 문자열의 뒤쪽에 위치
        	} else {
        		uppStr += rtnChr[i];
        	}
        }
        // ③ 역순으로 조합된 각 문자열을 반환
        return lowStr + uppStr;
    }
}

 

※ 위 코드는 해결 방법 중 한가지이며 더 효율적인 코드가 있을 수 있습니다.

 

문제 풀어보기 ▶ https://programmers.co.kr/learn/courses/30/lessons/12917?language=java
 

코딩테스트 연습 - 문자열 내림차순으로 배치하기

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로

programmers.co.kr

 

 

 

댓글