https://school.programmers.co.kr/learn/courses/30/lessons/120911
1. my_string을 char[ ] 형으로 만들어서 대문자일 때 해당하는 대문자를 소문자로 바꿔서 StringBuilder에 넣고, 다시 char[ ]로 만들어서 정렬!
1-1. 똑같은 데 StringBuilder를 쓰지 않고, char[ ]만 사용!
2. my_string을 toLowerCase()로 소문자로 변경 후 char[ ]형으로 만들어서 정렬!
1.
import java.util.Arrays;
class Solution {
public String solution(String my_string) {
StringBuilder sb = new StringBuilder();
// my_string을 char[] 형로 만들어서 대문자일 때, 해당하는 대문자를
// 소문자로 바꿔서 StringBuilder에 넣기
for(char ch : my_string.toCharArray()) {
if(65 <= ch-0 && ch-0 <= 90) ch = (char)(ch+32);
sb.append(ch);
}
// StringBilder를 char[] 형으로 만들어서 정렬하기
char[] answer = sb.toString().toCharArray();
Arrays.sort(answer);
return String.valueOf(answer);
}
}
import java.util.Arrays;
class Solution {
public String solution(String my_string) {
char[] answer = my_string.toCharArray();
for(int i=0; i<answer.length;i++) {
if(65 <= answer[i]-0 && answer[i]-0 <= 90) {
answer[i] = (char)(answer[i]+32);
}
}
Arrays.sort(answer);
return String.valueOf(answer);
}
}
- 두 방법 시간 차이는 그렇게 크게 나지는 않는데 어차피 정렬할 꺼라면 StringBuilder 안써도 될 것 같다..!
- char+32 => 하면 해당 하는 문자의 소문자가 아니라 그 소문자의 int가 나온다. 만약 b면 98 (char) 붙여주기!
2.
import java.util.*;
class Solution {
public String solution(String my_string) {
char[] c = my_string.toLowerCase().toCharArray();
Arrays.sort(c);
return String.valueOf(c);
}
}
- toLowerCase, toUpperCase말고도 다른 방법을 써보고 싶을 때는 for문 돌려돌려,,
'algorithm > Programmers' 카테고리의 다른 글
[JAVA] K의 개수 (0) | 2023.03.20 |
---|---|
[JAVA] A로 B 만들기 (0) | 2023.03.20 |
[JAVA] 숫자 찾기 (0) | 2023.03.20 |
[JAVA] 최댓값 만들기(2) (0) | 2023.03.20 |
[JAVA] n의 배수 고르기 (0) | 2023.03.19 |