728x90
문제

내 풀이
StringBuilder사용
class Solution {
public String solution(String my_string) {
StringBuilder reversed = new StringBuilder(my_string);
String answer = reversed.reverse().toString();
return answer;
}
}
StringBuilder
자바에서 String 객체는 변경 불가능.
따라서 a문자열과 b 문자열을 연결하여(+) c 문자열을 만들고, a와 b문자열은 가비지 컬렉터로 들어간다.
→ 비효율적이므로 StringBuilder 사용
// 생성자: 문자열 바로 넣기 가능 StringBuilder sb = new StirngBuilder("aaa") // # 주요 메소드 // 문자열 추가 sb.append("b") //aaab // 문자열 삽입 sb.insert(2,"c") // aaacb 2번 인덱스에 넣겠다 // 문자열 교체 sb.replce(2,"d") // aadcb // 문자 삭제 .deleteCharAt(int index) sb.deleteCharAt(3) // aadb // 문자열 삭제 .delete(int start, ine end) sb.delete(2. sb.length()) //aa // 문자열 뒤집기 sb.reverse() // aa // 문자열 반환 sb.toString() // 문자열 길이 조정 : 현재 문자열보다 길게 조정하면 공백으로 채워주고, 짧게 하면 삭제됨 sb.setLength(1) // a // 공백제거 : 문자열이 저장된 char[] 배열 사이즈를 현재 문자열 길이와 동일하게 조정, // String 클래스의 trim()이 앞 뒤 공백을 제거하는 것과 같이 공백 사이즈를 제공하는 것, // 배열의 남는 사이즈는 공백이므로, 문자열 뒷부분의 공백을 모두 제거해준다고 보면 됨 sb.tringToSize() // a // 문자 대체 .setChar(int index, String s) sb.setChat(0,"b"); // b
- 새롭게 알게된 점
StringBuilder vs StringBuffer
StringBuffer는 동기화된다는 점(멀티 스레드에서 사용)을 제외하면 동일한 메서드를 사용하므로 StringBuilder와 같은 역할을한다.
StringBuffer sbSql = new StringBuffer("Insert Into Users (name, email, pass, address)"); sbSql.append(" values ('").append(user.getName()); sbSql.append("', '").append(user.getEmail()); sbSql.append("', '").append(user.getPass()); sbSql.append("', '").append(user.getAddress()); sbSql.append("')"); String sql = sbSql.toString();
다른 풀이
class Solution {
public String solution(String my_string) {
String result ="";
for (int i = my_string.length()-1; i>=0; i--){
result += my_string.charAt(i);
}
return result;
}
}
참고
[Java] StringBuilder 사용법과 주요 메소드 (tistory.com)
728x90
'알고리즘 > SQL 풀이' 카테고리의 다른 글
| [MySQL] 동명 동물 수 찾기 (0) | 2023.10.04 |
|---|---|
| 프로그래머스| 0단계 삼각형의 완성조건(1) (5) | 2023.06.15 |
| 프로그래머스| 0단계 배열 자르기 (0) | 2023.06.04 |
| 프로그래머스| 0단계 배열 원소의 길이 (0) | 2023.06.04 |
| 프로그래머스| 0단계 양꼬치 (0) | 2023.06.03 |