문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.
my_string 길이 ≤ 5n ≤ 10| my_string | n | result |
|---|---|---|
| "hello" | 3 | "hhheeellllllooo" |
입출력 예 #1
class Solution {
public String solution(String my_string, int n) {
String answer = "";
for(int i = 0; i<my_string.length(); i++){
answer += String.valueOf(my_string.charAt(i)).repeat(n);
}
return answer;
}
}
📌String.repeat(int count)
- 해당 문자열을
count번 이어붙인 새 String을 반환하는 메서드count가 0이면 빈문자열 ""을 반환count가 음수이면IllegalArgumentException던짐.- 반환 값은
새로운 String이므로, 반복해서 많이 호출하면 임시 객체가 여러개 만들어진다 -> 성능/메모리 측면에서 비효율적일 수 있음!
class Solution {
public String solution(String my_string, int n) {
StringBuilder sb = new StringBuilder();
for(char c : my_string.toCharArray()){
sb.append((c + "").repeat(n));
}
return sb.toString();
}
}
toCharArray() : 해당 문자열의 문자들을 새로운 char[] 배열로 복사해서 반환하는 메서드sb.append((c + "").repeat(n)) : c는 char이므로 빈 문자열 ""을 더하면 자바가 char를 String으로 바꿔서 새로운 String을 만들고, repeat()메서드를 이용해서 문자열을 n번 이어붙인 새로운 String을 반환class Solution {
public String solution(String my_string, int n) {
StringBuilder sb = new StringBuilder(my_string.length() * n);
for (char c : my_string.toCharArray()) {
for (int i = 0; i < n; i++) sb.append(c);
}
return sb.toString();
}
}