
문제 설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한사항
str은 길이 1 이상인 문자열입니다.
입출력 예
s | return |
"Zbcdefg" | "gfedcbZ" |
나의 풀이
import java.util.*;
class Solution {
public String solution(String s) {
char[] ch = s.toCharArray();
Arrays.sort(ch);
StringBuilder lower = new StringBuilder();
StringBuilder upper = new StringBuilder();
for(int i=0; i<ch.length; i++){
if(65 <= ch[i] && ch[i] <= 90){
upper.append(ch[i]);
}else {
lower.append(ch[i]);
}
}
upper.reverse();
lower.reverse();
String afterLower = lower.toString();
String afterUpper = upper.toString();
return afterLower + afterUpper;
}
}
*참고자료

다른 풀이1
import java.util.Arrays;
public class ReverseStr {
public String reverseStr(String str){
char[] ch = str.toCharArray();
Arrays.sort(ch);
StringBuffer st = new StringBuffer(String.valueOf(ch));
st.reverse();
return st.toString();
}
}
다른 풀이2
// 메서드 체이닝 익히기
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();
}
public static void main(String[] args) {
ReverseStr rs = new ReverseStr();
System.out.println( rs.reverseStr("Zbcdefg") );
}
}
다른 풀이3
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());
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
public static void main(String[] args) {
ReverseStr rs = new ReverseStr();
System.out.println( rs.reverseStr("Zbcdefg") );
}
}
'👨💻 Coding Test > 구현' 카테고리의 다른 글
[Programmers/Java/Lv.1/문자열 유형] 13.서울에서 김서방 찾기 (0) | 2025.04.06 |
---|---|
[Programmers/Java/Lv.1/문자열 유형] 12.문자열 다루기 기본 (0) | 2025.04.06 |
[Programmers/Java/Lv.1/문자열 유형] 10.문자열 내 p와 y의 개수 (0) | 2025.04.05 |
[Programmers/Java/Lv.1/문자열 유형] 7.문자열 내 마음대로 정렬하기 (0) | 2025.04.01 |
[Programmers/Java/Lv.1/수학 유형] 6.두 정수 사이의 합 (0) | 2025.03.31 |

문제 설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한사항
str은 길이 1 이상인 문자열입니다.
입출력 예
s | return |
"Zbcdefg" | "gfedcbZ" |
나의 풀이
import java.util.*;
class Solution {
public String solution(String s) {
char[] ch = s.toCharArray();
Arrays.sort(ch);
StringBuilder lower = new StringBuilder();
StringBuilder upper = new StringBuilder();
for(int i=0; i<ch.length; i++){
if(65 <= ch[i] && ch[i] <= 90){
upper.append(ch[i]);
}else {
lower.append(ch[i]);
}
}
upper.reverse();
lower.reverse();
String afterLower = lower.toString();
String afterUpper = upper.toString();
return afterLower + afterUpper;
}
}
*참고자료

다른 풀이1
import java.util.Arrays;
public class ReverseStr {
public String reverseStr(String str){
char[] ch = str.toCharArray();
Arrays.sort(ch);
StringBuffer st = new StringBuffer(String.valueOf(ch));
st.reverse();
return st.toString();
}
}
다른 풀이2
// 메서드 체이닝 익히기
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();
}
public static void main(String[] args) {
ReverseStr rs = new ReverseStr();
System.out.println( rs.reverseStr("Zbcdefg") );
}
}
다른 풀이3
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());
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
public static void main(String[] args) {
ReverseStr rs = new ReverseStr();
System.out.println( rs.reverseStr("Zbcdefg") );
}
}
'👨💻 Coding Test > 구현' 카테고리의 다른 글
[Programmers/Java/Lv.1/문자열 유형] 13.서울에서 김서방 찾기 (0) | 2025.04.06 |
---|---|
[Programmers/Java/Lv.1/문자열 유형] 12.문자열 다루기 기본 (0) | 2025.04.06 |
[Programmers/Java/Lv.1/문자열 유형] 10.문자열 내 p와 y의 개수 (0) | 2025.04.05 |
[Programmers/Java/Lv.1/문자열 유형] 7.문자열 내 마음대로 정렬하기 (0) | 2025.04.01 |
[Programmers/Java/Lv.1/수학 유형] 6.두 정수 사이의 합 (0) | 2025.03.31 |