문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.
제한사항 1 ≤ my_string의 길이 ≤ 1,000
2) 예시
Result Table
my_string
return
"jaron"
"noraj"
"bread"
"daerb"
입출력 예 #1 my_string이 "jaron"이므로 거꾸로 뒤집은 "noraj"를 return합니다.
입출력 예 #2 my_string이 "bread"이므로 거꾸로 뒤집은 "daerb"를 return합니다.
3) 풀이
1. 클래스 선언을 해줍니다
● class Solution {
클래스명은 대문자로 시작해야하고, 정답이라는 의미로 Solution이라는 단어를 사용하였습니다.
2. 메소드 선언을 해줍니다.
● public String solution(String my_string) {
문자열 my_string을 매개변수로 사용하는 solution 메소드를 선언해줍니다.
메소드의 결과값인 solution은 문자열이 나오므로, 데이터 타입을 String으로 해줍니다.
3. 문자열 my_string에 대한 제한사항을 확인하고, 만족하지 않는다면 예외처리합니다.
● if (my_string.length() < 1 || my_string.length() > 1000) { throw new IllegalArgumentException("my_string의 길이는 1 이상 1000 이하입니다."); }
4. StringBuilder 객체인 reversedString을 생성해줍니다.
이 객체에는 my_string 인덱스 맨뒤부터 인덱스값이 0이 될때까지 -1을 해주며, 그것이 차례로 문자열로 덧붙여집니다.
그리고 toString메소드를 통해 문자열로 변환하여 반환해줍니다.
결과적으로 my_string 문자열을 뒤집어서 반환해주게되는 것입니다.
● StringBuilder reversedString = new StringBuilder();
for(int i = my_string.length - 1; i >= 0; i--) {
reversedString.append(my_string.charAt(i));
}
return reversedString.toString();
}
}
※ StringBuilder 란?
가변성있는 문자열을 만들기위한 클래스로, 그 자체로는 문자열이라고 보기 어려우나 toString 메소드를 통해 내부에 있는 문자열을 반환할 수 있습니다.String 과는 다르게 문자열을 직접 수정할 수 있어 효율적이며, 새로운 문자열을 생성하는 것이 아니라 기존 문자열을 수정하는 방식이라 성능 향상에도 도움을 줄 수 있습니다.
※ append 메소드란?
StringBuilder 객체에 문자나 데이터를 붙여주는 메소드입니다. append가 여러번 시행되면 순서대로 합쳐집니다.
※ charAt 메소드란?
문자열에서 특정 위치에 있는 문자를 반환합니다. 각 문자는 인덱스로 접근할 수 있고, 인덱스는 0부터 시작합니다.
ex) str.charAt(0)은 문자열 str의 첫 번째 문자를 반환
※ toString 메소드란?
객체를 문자열로 변환하는 데 사용합니다.
4) 코드
class Solution {
public String solution(String my_string) {
if (my_string.length() < 1 || my_string.length() > 1000) {
throw new IllegalArgumentException("my_string의 길이는 1 이상 1000 이하입니다.");
}
StringBuilder reversedString = new StringBuilder();
for (int i = my_string.length() - 1; i >= 0; i--) {
reversedString.append(my_string.charAt(i));
}
return reversedString.toString();
}
}