본문 바로가기

알고리즘

[알고리즘/Programmers] LV1. 문자열 내림차순으로 배치하기

728x90
반응형

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


문제 설명

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

제한 사항

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

입출력 예

s return
"Zbcdefg" "gfedcbZ"


사용 언어

Java

 

해결 방법

1. 문자열 -> 문자 배열

2. 문자 배열을 정렬 (오름차순)

3. 오름차순 문자 배열 -> StringBuilder로 문자열로 변환

4. 문자열 reverse

 

알게된 것

  • 문자열을 char 배열로 변경 : 문자열.toCharArray()
  • StringBuilder의 문자열 뒤집는 메서드 : 문자열.reverse().toString()
  • Arrasy.sort() 이용한 역순 정렬 (이 문제에서는 문자 배열이라 사용 못함)
    • Arrays.sort(대상배열,Collections.reverseOrder());
    • 대상배열이 Wrapper 클래스어야 사용 가능 (Integer, String ...)

 

코드

import java.util.Arrays;

/*
    문자열 내림차순으로 배치하기
 */
public class test_12917 {
    public static void main(String[] args) {
        String s = "Zbcdefg";
        System.out.println(solution(s));
    }
    static public String solution(String s) {
        char[] sChar = s.toCharArray();
        Arrays.sort(sChar); // 오름차순
        StringBuilder answer = new StringBuilder(new String(sChar));
        return answer.reverse().toString();
    }
}

 

참고

coding-factory.tistory.com/549

 

[Java] 자바 배열 정렬하기(오름차순, 내림차순) Arrays.sort()

자바에서 배열이나 리스트를 정렬하려고 한다면 java.util.Arrays 클래스의 sort() 메서드를 사용하시면 따로 정렬 로직을 짜지 않아도 한번의 메소드 호출로 간편하게 배열이나 리스트를 정렬할 수

coding-factory.tistory.com

d4m0n.tistory.com/30

 

[helloworld] Level1 - 문자열 내림차순으로 배치하기

이 문제는 일단 String.toCharArray() 메서드로 문자열을 char 배열로 변환시켜준 후, Array.sort() 메서드로 오름차순 정렬 후, StringBuilder 클래스의 reverse() 메서드와 toString() 메서드를 활용하여 내림..

d4m0n.tistory.com

 

728x90
반응형