Algorithms/- 프로그래머스
프로그래머스 - 문자열 내림차순으로 배치하기 [자바]
자굿
2022. 2. 2. 11:31
- 문제 링크 : 문자열 내림차순으로 배치하기
코딩테스트 연습 - 문자열 내림차순으로 배치하기
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로
programmers.co.kr
정답
import java.util.*;
class Solution {
public String solution(String s) {
if(s.length() == 1){
return s;
}
String[] arr = s.split("");
Arrays.sort(arr);
String str = "";
for(int i=arr.length-1; i>=0; i--){
str += arr[i];
}
return str;
}
}
분석
- 문자열 다루기 문제
참고할 만한 정답
- StringBuilder를 사용하여 내림차순 정렬
import java.util.Arrays;
public class ReverseStr {
public String reverseStr(String str){
char[] sol = str.toCharArray();
Arrays.sort(sol);
return new StringBuilder(new String(sol)).reverse().toString();
}
}
- 속도는 느리지만 stream을 사용하면 아래 처럼 풀 수 있다.
import java.util.stream.Stream;
import java.util.stream.Collectors;
import java.util.Comparator;
public class ReverseStr {
public String reverseStr(String str){
return Stream.of(str.split(""))
.sorted(Comparator.reverseOrder())
.collect(Collectors.joining());
}
}
비교 분석
- StringBuilder를 활용하면 역순 정렬을 쉽게 할 수 있다.
- StringBuilder에 대한 학습이 필요함.
비교 분석 반영
import java.util.*;
class Solution {
public String solution(String s) {
if(s.length() == 1){
return s;
}
char[] arr = s.toCharArray();
Arrays.sort(arr);
return new StringBuilder(new String(arr)).reverse().toString();
}
}
반응형