| 문제
문자열 my_string이 매개변수로 주어집니다.
my_string을 거꾸로 뒤집은 문자열을 return 하도록 solution 함수를 완성해 주세요.
| 제한 사항
- 1 ≤ my_string의 길이 ≤ 1,000
| 입출력 예
my_string | return |
"jaron" | "noraj" |
"bread" | "daerb" |
| 풀이 1
public String solution01(String my_string) {
String[] arr = my_string.split("");
String[] reverseArr = new String[arr.length];
for(int i = arr.length-1,j=0 ; i >= 0 ; i--, j++){
reverseArr[j] = arr[i];
}
return String.join("",reverseArr);
}
| 풀이 2
public String solution02(String my_string) {
StringBuilder sb = new StringBuilder();
sb.append(my_string);
sb.reverse();
return sb.toString();
}
| 해설
문자열을 다루는 문제는 대부분 문자열을 배열로 잘라서 다루는 것에서부터 시작하는 것 같아요.
문자열을 다루는 문제를 만나면 일단 문자열부터 자르고 생각하게 될 정도로요.
문자열 뒤집기 문제도 마찬가지로 배열로 잘라서 작업할 수 있고,
거기다가 특별한 문자열 StringBuilder도 사용할 수도 있습니다.
StringBuilder는 문자열 형태의 데이터를 더 유연하게 사용할 수 있도록 도와줍니다.
조금 더 멋진 말로 String은 immutable 하고, StringBuilder는 mutable 하다고 말해요.
딱딱하게 굳어있던 문자열을 StringBuilder로써 다루면 말랑말랑 유연해진답니다.
그래서 마치 배열 대신 컬렉션을 사용하면 코드를 단순화할 수 있었던 것처럼
String 대신 StringBuilder를 사용하면 다양한 작업을 쉽게 구현할 수 있어요.
대표적인 것이 문자열을 뒤집는 것이고, 이 문제에서 StringBuilder를 사용한 이유입니다.
'개발 > 개발 공부' 카테고리의 다른 글
[프로그래머스] 코딩테스트 입문 : 짝수 홀수 개수 (12) | 2024.09.04 |
---|---|
[프로그래머스] 코딩테스트 입문 : 직각삼각형 출력하기 (별찍기) (2) | 2024.09.03 |
[프로그래머스] 코딩테스트 입문 : 배열 뒤집기 (0) | 2024.09.02 |
[프로그래머스] 코딩테스트 입문 : 나이 출력 (0) | 2024.09.02 |
[프로그래머스] 코딩테스트 입문 : 아이스 아메리카노 (0) | 2024.08.30 |
댓글