Language/Java
[ Java ] 문자열 알파벳순 정렬하기
병훈1234
2022. 1. 12. 23:59
전체적인 과정을 살펴보면 각각의 문자열을 한자리씩 끊어서 char 타입의 배열로 만들어준 다음, char 타입의 배열을 정렬하는 방식으로 진행하는 것이다..
이 과정을 스트림을 사용하여 구현하기 위해서는, 다음과 같은 순서로 진행한다.
- 문자열을 chars() 메소드를 사용하여 Intstream으로 바꿔준다.
- Intstream을 박싱하여 IntegerStream으로 바꾸어준다.
- sorted 메서드를 사용하여 정렬된 스트림을 얻는다. 이 때, Comparators.reverseOrder를 인자로 넘겨주면 내림차순으로 정렬된다.
- 이후 정렬된 스트림을 int[] 타입의 배열로 얻어준 다음, Char형으로 바꿔주면서 한자리씩 추가해주는 방식으로 정렬된 문자열을 얻을 수 있다.
- char형 타입을 스트림으로 다룰때는 잘 되지 않는 점이 많으니 intstream으로 간주하고 int 배열로 처리하는것이 훨씬 편하다. 맨 마지막에 (char)만 붙여주면 아스키 코드가 문자화 되니까ㅎㅎ
import java.util.Comparator;
class Solution {
public String solution(String s) {
String answer = "";
int[] temp = s.chars()
.boxed()
.sorted(Comparator.reverseOrder())
.mapToInt(i -> i)
.toArray();
for (int ch : temp) {
answer += (char)ch;
}
return answer;
}
}