-
프로그래머스 - 문자열 내림차순으로 배치하기 [자바]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(); } }
반응형