프로그래머스 코딩(자바)/Level 1
Programmers Level 1 - 문자열 내림차순으로 배치하기
kjwc
2023. 3. 9. 16:51
728x90
문제 설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한 사항
- str은 길이 1 이상인 문자열입니다.
s | return |
"Zbcdefg" | "gfedcbZ" |
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import java.util.Arrays;
import java.util.Comparator;
class Solution {
public String solution(String s) {
String[] ar = s.split("");
Arrays.sort(ar, new Comparator<String>() {
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
});
return String.join("",ar);
}
}
|
cs |
1
2
3
4
5
6
7
8
9 |
import java.util.Collections;
import java.util.Arrays;
class Solution {
public String solution(String s) {
String[] ar = s.split("");
Arrays.sort(ar, Collections.reverseOrder()); return String.join("", ar);
}
}
|
cs |
1글자씩 잘라 String 배열을 만들고 역순으로 정렬한 후 다시 String으로 결합하였다. |
1
2
3
4
5
6
7
8
|
import java.util.Arrays;
import java.util.Collections;
import java.util.stream.Collectors;
class Solution {
public String solution(String s) {
return Arrays.stream(s.split("")).sorted(Collections.reverseOrder()).collect(Collectors.joining());
}
}
|
cs |
Stream으로 만들고 역순으로 정렬하여 다시 문자열로 결합 하였다. |
1
2
3
4
5
6
7
|
import java.util.Collections;
import java.util.stream.Collectors;
class Solution {
public String solution(String s) {
return s.chars().mapToObj(v->(char)v+"").sorted(Collections.reverseOrder()).collect(Collectors.joining());
}
}
|
cs |
IntStream을 maptoObj()로 Stream<String>으로 만들고 역순 정렬하여 문자열로 결합하였다. |
728x90