반응형
https://programmers.co.kr/learn/courses/30/lessons/12917
<문자열 내림차순으로 배치하기>
○ 처음 푼 풀이
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
28
29
30
31
32
33
34
35
36
37
38
39
|
class Solution {
public String solution(String s) {
String answer = "";
int[] arr = new int[s.length()];
// 알파벳 하나씩 숫자형태로 arr 배열에 담기
for(int i=0;i<arr.length;i++) {
arr[i] = s.charAt(i);
}
// 숫자로 바뀐 알파벳끼리 서로 비교해서 내림차순 정렬하기
boolean flag;
for(int i=1;i<arr.length;i++) {
flag = false;
for(int j=0;j<arr.length-i;j++) {
if(arr[j] < arr[j+1]) {
arr[j] = arr[j] ^arr[j+1];
arr[j+1] = arr[j+1]^arr[j];
arr[j] = arr[j] ^arr[j+1];
flag = true;
}
}
if(flag==false)
break;
}
// 정렬된 숫자들을 char형태로 변환하여 더해서 String으로 바꿔주기
for(int i=0;i<arr.length;i++) {
answer += (char)arr[i];
}
return answer;
}
}
|
cs |
- String의 문자를 하나하나 char로 분리하여 int 배열에 담아 크기를 비교하자고 생각
- int로 바뀐 알파벳끼리 크기를 비교하여 내림차순 향상된 버블정렬
- 정렬된 숫자를 다시 char로 형변환하여 String으로 합하기
○ 참고할 풀이
1
2
3
4
5
6
7
8
9
|
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();
}
}
|
cs |
- toCharArray()
- reverse()
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
같은 숫자는 싫어/java/프로그래머스/Level1 (0) | 2020.02.23 |
---|---|
나누어 떨어지는 숫자 배열/java/프로그래머스/Level1 (0) | 2020.02.23 |
K번째수/java/프로그래머스/Level1 (0) | 2020.02.16 |
시저 암호/java/프로그래머스/Level1 (0) | 2020.02.16 |
약수의 합/java/프로그래머스/Level1 (0) | 2020.02.15 |