728x90
반응형
문자열 내림차순으로 정렬하기 - 프로그래머스 Java
URL
programmers.co.kr/learn/courses/30/lessons/12917
문제 설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한 사항
- str은 길이 1 이상인 문자열입니다.
입출력 예
s | return |
"Zbcdefg" | "gfedcbZ" |
성공 코드
import java.util.*;
class Solution {
public String solution(String s) {
String answer = "";
char[] charArr = s.toCharArray();
Arrays.sort(charArr);
answer = new StringBuilder(new String(charArr)).reverse().toString();
return answer;
}
}
① s.toCharArray()
toCharArray() 메서드를 활용하여 파라미터로 넘어온 s를 char단위로 1개씩 쪼개서 char[] charArr 로 return 받습니다.
② java.util.Arrays 를 import하여 Arrays.sort(charArr) 로 문자열을 오름차순으로 정렬합니다. 여기서 따로 return 받지 않아도 charrArr는 오름차순으로 정렬됩니다.
③ 오름차순으로 정렬된 charArr을 StringBulder
를 활용해 answer = new StringBuilder(new String(charArr))
로 받는데 reverse()
메서드를 활용해 오름차순으로 정렬된 문자열을 내림차순으로 다시 정렬해 toString()
메서드로 해당 객체의 정보나 값을 참조하게 한 후 answer로 받아 return
해 줍니다.
다른 사람 코드
import java.util.Arrays;
import java.util.Collections;
class Solution {
public String solution(String s) {
String[] array = s.split("");
Arrays.sort(array);
Collections.reverse(Arrays.asList(array));
return String.join("",array);
}
}
import java.util.Arrays;
import java.util.Collections;
class Solution {
public String solution(String s) {
String[] array = s.split("");
Arrays.sort(array, Collections.reverseOrder());
return String.join("", array);
}
}
StringBuilder / StringBuffer 아래 게시글 참조
2021.03.25 - [Java] - [Java] String / StringBuffer / StringBuilder 사용법 및 차이점 - 불변 문자열, 가변 문자열
728x90
반응형
'개발 기록 > 코딩테스트 풀이 기록' 카테고리의 다른 글
[코딩 테스트] 카카오 크레인 인형 뽑기 게임 (프로그래머스) - Java (1) | 2021.04.06 |
---|---|
[백준 BOJ] 2884번 알람 시계 - Java (알고리즘 : 수학) (0) | 2021.03.27 |
[알고리즘, 코딩 테스트] 문자열 내 p와 y의 개수 (프로그래머스) - Java (0) | 2021.03.25 |
[알고리즘, 코딩 테스트] 가운데 글자 가져오기, substring() - Java / 프로그래머스 (0) | 2021.03.25 |
[알고리즘, 코딩 테스트] 문자열 다루기 기본 Integer.parseInt(), try catch - Java / 프로그래머스 (1) | 2021.03.25 |