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
'프로그래머스 코딩(자바) > Level 1' 카테고리의 다른 글
Programmers Level 1 - 문자열 다루기 기본 (0) | 2023.03.10 |
---|---|
Programmers Level 1 - 약수의 개수와 덧셈 (0) | 2023.03.09 |
Programmers Level 1 - 내적 (0) | 2023.03.09 |
Programmers Level 1 - 수박수박수박수박수박수? (0) | 2023.03.09 |
Programmers Level 1 - 가운데 글자 가져오기 (0) | 2023.03.09 |