프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제

제출한 코드
import java.util.Arrays;
class Solution {
public String solution(String s) {
char[] arr = s.toCharArray();
Arrays.sort(arr);
StringBuilder sb = new StringBuilder(String.valueOf(arr));
sb.reverse();
return sb.toString();
}
}
풀이
입력 받은 문자열로부터 문자가 큰 것에서 작은순으로 정렬하여 문자열을 return 해야 하는 문제이다.
처음에 toCharArray() 라는 메서드를 사용해서 입력받은 String 값을 char 형태의 배열로 바꿔주었다. 예를 들어, qwerT 라는 문자열을 값으로 받았을 때 ['q', 'w', 'e', 'r', 'T'] 라는 배열로 변환해준다.
이후 java.util 패키지에 있는 Arrays 라는 유틸리티 클래스를 import 해주어서 sort() 라는 메서드를 사용해서 배열 arr 를 문자가 작은순에서 큰순 즉, 아스키코드 값이 가장 작은 문자부터 차례대로 배열을 정렬해준다. 이 메서드를 수행하게 되면 ['T', 'e', 'q', 'r', 'w'] 와 같이 정렬된다.
해당 문제를 푸는 데 알아야 하는 중요한 내용은 아니지만, 참고용으로 알파벳 대소문자의 아스키코드 표를 첨부한다.

이후 StringBuilder 를 통해 오름차순으로 정렬된 배열 arr 를 String 값으로 변환하여 저장해준다. 그렇게 되면 변수 sb 에는 Teqrw 값이 들어가 있게 된다.
마지막으로 StringBuilder에서 제공해주는 reverse() 메서드를 통해 내림차순으로 변환해준 후(wrqeT), toString() 으로 String 값을 return 해주어 이 문제를 풀어냈다.
'프로그래머스' 카테고리의 다른 글
| [프로그래머스] 12918번 - 문자열 다루기 기본 [Java] (0) | 2026.04.15 |
|---|---|
| [프로그래머스] 82612번 - 부족한 금액 계산하기 [Java] (0) | 2026.04.14 |
| [프로그래머스] 70128번 - 내적 [Java] (0) | 2026.04.10 |
| [프로그래머스] 77884번 - 약수의 개수와 덧셈 [Java] (0) | 2026.04.10 |
| [프로그래머스] 12922번 - 수박수박수박수박수박수? [Java] (0) | 2026.04.08 |
