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

유재경·2020년 9월 27일
0

프로그래머스(level 1)

목록 보기
14/15

#2020. 09. 27

문제 설명

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

제한 사항

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

입출력 예

sreturn
"Zbcdefg""gfedcbZ"

풀이

import java.util.Arrays;
import java.util.Collections;

class Solution {
    public String solution(String s) {
        String answer = "";
        int length = s.length();
        int[] arr = new int[length];
        for(int i = 0; i < length; i++) {
            arr[i] = s.charAt(i);
        }
        for(int i = 0; i < length - 1; i++) {
            for(int j = 0; j < length - i - 1; j++) {
                if(arr[j] < arr[j + 1]) swapArr(arr, j, j + 1);
            }
        }
        for(int i = 0; i < length; i++) {
            answer += (char)arr[i];
        }
        return answer;
    }
    public void swapArr(int[] arr, int a, int b) {
        int temp = arr[a];
        arr[a] = arr[b];
        arr[b] = temp;
    }
}

문자열 s를 받은 후, 문자열의 한글자씩 배열에 담고, 해당 글자들을 비교해가면서, 제일 작은 것을 제일 뒤로 보내는 반복문을 이용했습니다. 매 반복문마다 가장 큰 것은 가장 앞에 오게 되는 것입니다. 그 후에 정렬이 완료되면, 배열의 정렬된 순서대로 문자열로 합쳐서 리턴해줍니다!

profile
차근차근히 시작해보는 velog

0개의 댓글