- 파이썬은 정말 미친 언어같다
- repeat() 이란 심플하고 강력한 메서드에 대해 알게 되었다.
[Java]
StringBuilder sb = new StringBuilder();
for (int i=0; i<k; i++) {
sb = sb.append(my_string);
}
return sb.toString();
StringBuilder는 가변 문자열을 다루기 때문에 메모리 재할당이 최소화됩니다.
문자열 결합 시마다 새로운 문자열 객체를 생성하지 않으므로 효율적입니다.
성능이 중요하고 Java 11 이하를 사용한다면 좋습니다
return my_string.repeat(k);
String.repeat은 내부적으로 최적화되어 있어 효율적입니다
Java 11 이상에서만 사용 가능합니다
가장 간결하고 직관적
https://www.javastring.net/java/string/java-string-repeat-method
return IntStream.range(0, k).mapToObj(x -> my_string).collect(Collectors.joining());
다른 방법에 비해 약간 더 복잡하며 오버헤드 발생 가능.
스트림 API와의 결합이 필요하거나 선언적 코드를 선호할 때 유용
[Python]
return my_string * k
[C]
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* my_string, int k) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
int len = strlen(my_string);
char* answer = (char*)malloc(len * k + 1);
for(int i = 0; i < k; i++)
{
strcpy(&answer[i * len], my_string);
}
answer[len * k] = '\0';
return answer;
}