728x90
문제 설명 :
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한 사항 :
- str은 길이 1 이상인 문자열입니다.
입출력 예 :
| s | return |
| "Zbcdefg" | "gfedcbZ" |
import java.util.*;
class Solution {
public String solution(String s) {
String[] answer = s.split("");
Arrays.sort(answer);
Collections.reverse(Arrays.asList(answer));
return String.join("", answer);
}
}
알고리즘 풀이 :
1. answer이라는 문자열 배열에 s를 split을 사용해 한 글자씩 잘라서 저장
2. Arrays.sort를 사용하여 answer을 내림차순으로 정렬
- Arrays.sort를 사용하지 않으면 입출력 예로는 오류가 뜨지 않지만 다른 경우에 오류가 뜸
3. Arrays.asList를 사용해 answer을 list화 시킨 후 Collections.reverse을 사용해 역순으로 만듬
- Collections.reverse()는 list를 내림차순으로 정렬시킬 수 있음
4. list 자체는 하나하나의 원소이기에 join을 사용해 String 형식으로 answer의 각 원소를 붙여준 뒤 return을 사용해 반환
728x90
'프로그래머스 > level1' 카테고리의 다른 글
| [Java][프로그래머스] 최대공약수와 최소공배수 (0) | 2020.10.06 |
|---|---|
| [Java][프로그래머스] 하샤드 수 (0) | 2020.10.06 |
| [Java][프로그래머스] 같은 숫자는 싫어 (0) | 2020.09.23 |
| [Java][프로그래머스] 예산 (0) | 2020.09.22 |
| [Java][프로그래머스] 자릿수 더하기 (0) | 2020.09.22 |