https://programmers.co.kr/learn/courses/30/lessons/12917
풀이
String -> char[]
char[] ch = str.toCharArray();
char[] -> String
1. 단순히 (+) 연산
String은 불변객체라 String 객체와 String 객체를 더하는(+) 행위는 메모리 할당과 메모리 해제를 발생시켜 많아질수록 성능이 떨어진다.
String str = "";
for(char c:ch)
str += c;
2. StringBuilder.append()
StringBuilder은 기존의 데이터에 더하는 방식을 사용하기 때문에 속도도 빠르며 상대적으로 부하가 적다. 확실히 코드를 수정한뒤에 시간이 단축됨을 확인할 수 있었다. Stringbuilder에서 문자열을 더하는 함수는 append()이다.
StringBuilder sb = new StringBuilder();
for(char c : ch) {
sb.append(c);
}
String str = sb.toString();
// 한줄로 끝내기
String str = new StringBuilder(new String(c)).toString();
3. String.valueOf()
String str = String.valueOf(ch);
알고리즘
String을 char[] 타입으로 변환한 뒤 내림차순으로 정렬해준다. (큰거부터 작은순으로 정렬)
아스키코드로 정렬하기 위해 '0'을 빼주는 연산을한다.
마지막으로 다시 char[] 을 String 타입으로 변환 후 return 해준다.
class Solution {
public String solution(String s) {
String answer = "";
char[] c = s.toCharArray();
for(int i=0;i<c.length;i++){
for(int j=i;j<c.length;j++){
if(c[i]<c[j]){
char tmp=c[i];
c[i]=c[j];
c[j]=tmp;
}
}
}
return String.valueOf(c);
}
}
'Algorithm & Data Structure > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 : 이상한 문자 만들기 (0) | 2022.02.07 |
---|---|
[Java] 프로그래머스 : 문자열 내 마음대로 정렬하기 (0) | 2022.02.07 |
[Java] 프로그래머스 : 서울에서 김서방 찾기 (0) | 2022.01.31 |
[Java] 프로그래머스 : 문자열 내 p와 y의 개수 (0) | 2022.01.31 |
[Java] 프로그래머스 : 가운데 글자 가져오기 (0) | 2022.01.31 |