📌URL
https://school.programmers.co.kr/learn/courses/30/lessons/12917
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🔎풀이
import java.util.Arrays;
class Solution {
public String solution(String s) {
int[] list = new int[s.length()];
StringBuilder answer = new StringBuilder();
for(int i = 0; i < s.length(); i++) {
list[i] = ((int)s.charAt(i));
}
Arrays.sort(list);
for(int i = list.length-1; i >= 0; i--) {
answer.append((char)list[i]);
}
return answer.toString();
}
}
for문을 돌려 파라미터인 s를 list라는 배열에 저장한 후,
내장함수인 sort를 사용하여 list를 정렬해주었다.
그리고 for문을 돌려 answer에 값을 역으로 더해주는 과정을 거쳤다.(문제가 큰 -> 작은 순으로 정렬이었기 때문에)
⭐reverse() / toCharArray()
다른 분들의 풀이를 찾아보니 내가 마지막에 list를 거꾸로 돌려 answer에 추가한 부분을 reverse()로 대체하였음을 알 수 있었다 !
또한 파라미터 S를 toCharArray()로 첫번째 for문을 대체할 수 있음을 확인했다.
그렇게 대체하고나니 아래와 같이 간단하고 가독성 좋은 메소드를 작성할 수 있었다.
import java.util.Arrays;
class Solution {
public String solution(String s) {
char[] list = s.toCharArray();
StringBuilder answer = new StringBuilder();
Arrays.sort(list);
return answer.append(list).reverse().toString();
}
}
'👨💻 Coding Test' 카테고리의 다른 글
[ 프로그래머스 / Java ] #82612_부족한 금액 계산하기 (0) | 2023.12.13 |
---|---|
[ 프로그래머스 / Java ] #70128_내적 (0) | 2023.12.12 |
[ 프로그래머스 / Java ] #76501_음양 더하기 (0) | 2023.12.06 |
[ 프로그래머스 / Java ] #86051_없는 숫자 더하기 (0) | 2023.12.04 |
[ 프로그래머스 / Java ] #12918_문자열 다루기 기본 (1) | 2023.12.04 |