https://programmers.co.kr/learn/courses/30/lessons/12917
방법 1: 아스키 코드 활용...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import java.util.Arrays;
import java.util.Collections;
class Solution {
public String solution(String s) {
// String -> Integer배열
Integer[] arrInteger = new Integer[s.length()];
for (int i = 0; i < s.length(); i++) {
arrInteger[i] = (int)s.charAt(i);
}
// 내림차순 정렬
Arrays.sort(arrInteger, Collections.reverseOrder());
// Integer배열 -> String
StringBuilder sb = new StringBuilder();
for (int i = 0; i < arrInteger.length; i++) {
int temp = arrInteger[i];
sb.append((char)temp);
}
return sb.toString();
}
}
Colored by Color Scripter
|
방법 2: StringBuilder.reverse() 활용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import java.util.Arrays;
class Solution {
public String solution(String s) {
// String -> char배열
char[] arrChar = s.toCharArray();
// 오름차순 정렬
Arrays.sort(arrChar);
// char배열 -> String
StringBuilder sb = new StringBuilder(new String(arrChar));
// StringBuilder 역순배치
sb.reverse();
return sb.toString();
}
}
Colored by Color Scripter
|
TIP1
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
문제의 요건 덕분에 가능한 풀이방법이다.
Arrays.sort() 내부적으로도 문자는 아스키 크기를 기준으로 비교하는 듯하다.
(아스키 코드 기준: 대문자가 소문자보다 더 '작다')
TIP2
StringBuilder에 reverse함수가 있는지 처음 알았다.
정렬은 아니고, 인덱스 순서를 반대로 한다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스]연습문제 : 서울에서 김서방 찾기 (level 1) (0) | 2019.11.06 |
---|---|
[프로그래머스]연습문제 : 문자열 다루기 기본 (level 1) (0) | 2019.11.06 |
[프로그래머스]연습문제 : 문자열 내 p와 y의 개수 (level 1) (0) | 2019.11.06 |
[프로그래머스]연습문제 : 문자열 내 마음대로 정렬하기 (level 1) (0) | 2019.11.06 |
[프로그래머스]연습문제 : 두 정수 사이의 합 (level 1) (0) | 2019.11.06 |
댓글