
Problem 💻
https://school.programmers.co.kr/learn/courses/30/lessons/120822
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ my_string의 길이 ≤ 1,000
입출력 예my_stringreturn
| "jaron" | "noraj" |
| "bread" | "daerb" |
Solution 💡
class Solution {
public String solution(String my_string) {
StringBuilder answer = new StringBuilder();
//문자열을 뒤에서부터 순회
for (int i = my_string.length()-1; i >= 0; i--) {
answer.append(my_string.charAt(i)); //문자 추가
}
return answer.toString(); //문자열로 변환 후 반환
}
}
1. StringBuilder는 뭐지?
Java에서 문자열을 다루기 위한 클래스 중 하나로, 문자열을 수정하거나 조작할 때 주로 사용된다.
일반적인 String객체는 불변이기 때문에 문자열을 변경하려면 새로운 객체를 생성해야 한다.
하지만, StringBuilder는 가변적이어서 문자영을 효율적으로 수정할 수 있다.
1.1 StringBuilder는 어떤 특징이 있을까?
- 가변성 : String 객체는 한 번 생성되면 변경할 수 없다. 반면, StringBuilder는 내부의 문자열을 수정할 수 있다. 그래서 메모리 낭비를 줄이고 성능을 향상 시킨다.
- 효율성 : 문자열을 반복해서 추가하거나 삭제해야 할 때, StringBuilder는 String보다 빠르다.
- 멀티스레드 환경에서는 StringBuilder 대신 StringBuffer를 사용한다. StringBuffer는 스레드 안전을 보장하지만, StringBuilder는 더 빠르다.
1.2 StringBuilder의 사용법
1.2.1 생성
StringBuilder sb = new StringBuilder("Hello");
1.2.2 문자열 추가(append)
sb.append("World");
System.out.println(sb); //출력: Hello World
1.2.3 문자열 삽입(insert)
sb.insert(6, "Java ");
System.out.println(sb); //출력: Hello Java World
1.2.4 문자열 삭제(delete)
sb.delete(6, 11);
System.out.println(sb); //출력:Hello World
1.2.5 문자열 뒤집기(reverse)
sb.reverse();
System.out.println(sb); //출력: dlroW olleH
1.2.6 문자열 길이 확인(length)
System.out.println(sb.length()); //출력: 11
1.2.7 문자열을 String으로 변환(toString)
String result = sb.toString();
System.out.println(result); //출력: dlroW olleH

더 간단한 방법.
class Solution {
public String solution(String my_string) {
return new StringBuilder(my_string).reverse().toString();
}
}
'🇰🇷 한국어 (Korean) > Java Algorithm Coding Test' 카테고리의 다른 글
| [Java] 매 시간마다 두배로 만들기 (0) | 2024.12.26 |
|---|---|
| [Java] 조건문 문법 확실히 알아두기. (조건이 여러 개일 때) (0) | 2024.12.25 |
| [Java] 문자열 뒤집기 (1) | 2024.12.21 |
| [Java] 피자 나눠먹기(3)_올림 계산 (1) | 2024.12.18 |
| [Java] 유클리드 호제법은 주로 최대공약수(GCD)와 최소공배수(LCM)을 구하는 유형에 쓰인다. (0) | 2024.12.17 |