- toCharArray() 메서드에 대해 알게 되었다.
- IntStream 의 존재에 대해 알게 되었다.
- 같은 기능을 하지만 성능과 효율측면에서 다양하게 구현할 수 있음을 알 수 있었다.
- 파이썬으로 알고리즘을 공부하고싶단 생각이 강하게 든다,,
[Java]
class Solution {
public String solution(String str1, String str2) {
String answer = "";
char[] array1 = str1.toCharArray();
char[] array2 = str2.toCharArray();
for (int i=0; i<array1.length; i++) {
answer += array1[i];
answer += array2[i];
}
return answer;
}
}
문자열을 반복적으로 결합하는 방식은 성능에 비효율적일 수 있습니다. (특히 문자열이 길 경우)
[Java] String 문자열을 char 배열로 변환하기
지난 번에는 char 배열을 String으로 변환하는 방법을 알아보았습니다. [Java] char 배열을 String 문자열로 변환하기 이번에는 String을 char[] 로 변환하는 방법을 알아보겠습니다. toCharArray() 코드 import ja
hianna.tistory.com
for(int i = 0; i < str1.length(); i++){
answer+= str1.charAt(i);
answer+= str2.charAt(i);
}
문자 결합 시 불필요한 변환이 없어서 코드가 조금 더 효율적일 수 있습니다.
for(int i = 0; i < str1.length(); i++) {
answer += String.valueOf(str1.charAt(i));
answer += String.valueOf(str2.charAt(i));
}
String.valueOf(char)를 사용하여 명시적으로 문자열로 변환하기 때문에 타입 변환을 더 명확하게 합니다.
불필요한 String.valueOf 호출로 인해 약간의 오버헤드가 발생할 수 있습니다.
char[] chars1 = str1.toCharArray();
char[] chars2 = str2.toCharArray();
StringBuilder sb = new StringBuilder();
for (int i=0; i<chars1.length; i++) {
sb.append(chars1[i]).append(chars2[i]);
}
return sb.toString();
문자열 결합을 반복적으로 수행할 때는 StringBuilder를 사용하는 것이 성능 면에서 유리합니다.
StringBuilder는 가변 문자열을 지원하므로 문자열 결합 시 메모리 사용을 줄일 수 있습니다.
return IntStream.range(0, str1.length())
.mapToObj(i -> Character.toString(str1.charAt(i)) + str2.charAt(i))
.collect(Collectors.joining());
Java 스트림 API를 사용 (Java 8 이상)
IntStream.range(0, str1.length())
--> 0부터 str1의 길이까지의 인덱스를 생성
.mapToObj(i -> Character.toString(str1.charAt(i)) + str2.charAt(i))
--> 각 인덱스에서 str1과 str2의 해당 문자를 추출하여 결합
.collect(Collectors.joining())
--> 결합된 문자열을 모두 연결하여 하나의 문자열로 만듦
https://data04190.tistory.com/59
[ JAVA ] JAVA IntStream 주요 메서드 정리
'java.util.stream.IntStream' 의 주요 메서드를 정리한 글입니다. IntStram 이란? Java8에서 데이터를 더 효과적으로 처리할 수 있는 새로운 기능인 Stream API 중 한 부분. 'int' 에 대한 순차 및 병렬 집계 연산
data04190.tistory.com
https://m.blog.naver.com/ding-dong/221386518751
Java8 IntStream으로 반복하기
Java를 처음 배우신 분들은 반복적으로 실행을 하기 위해서는 while, do-while, for를 배우셨을 것이다. ...
blog.naver.com
[Python]
for i in range(len(str1)):
answer += str1[i]
answer += str2[i]
[C]
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "abc";
char str2[] = "123";
int length = strlen(str1);
char answer[2 * length + 1]; // 두 문자열의 길이 합 + null terminator
int k = 0;
for (int i = 0; i < length; i++) {
answer[k++] = str1[i];
answer[k++] = str2[i];
}
answer[k] = '\0'; // 문자열의 끝을 표시
printf("%s\n", answer); // 결과: "a1b2c3"
return 0;
}