기초 트레이닝 문제 풀기
문제1) 문자열 겹쳐쓰기
- 기본 풀이방식
class Solution {
public String solution(String str1, String str2) {
String result = "";
char[] strArray1 = str1.toCharArray();
char[] strArray2 = str2.toCharArray();
for(int index = 0; index < str1.length(); index++) {
result += strArray1[index];
result += strArray2[index];
}
return result;
}
}
- StringBuilder를 사용한 풀이방법
class Solution {
public String solution(String str1, String str2) {
StringBuilder result = new StringBuilder();
for(int index = 0; index < str1.length(); index++) {
result.append(str1.charAt(index)).append(str2.charAt(index));
}
return result.toString();
}
}
String은 재할당이 불가능해, 새로운 값이 들어오면 이전 문자열은 가비지 컬렉터로 들어간다.
StringBuilder는 이런점을 개선하여 나온것으로, 재할당이 가능해 String을 더하는 연산을 더 효율적으로 수행할 수 있다.
* 멀티 쓰레드 환경이라면, 다른 쓰레드의 간섭을 받지 않기 위해 StringBuilder대신 StringBuffer를 사용하는 것이 더 안전하다.
StringBuilder, StringBuffer 둘다 가변성인, 즉 값이 변할수 있는 자료형이다.
문제 2) 문자열 곱하기
자바는 문자열 * 숫자 곱하기가 안된단다. 대신 repeat() 함수를 사용가능.
class Solution {
public String solution(String my_string, int k) {
return my_string.repeat(k);
}
}
React - useState, conditional rendering, Fragment (1) | 2024.12.23 |
---|---|
Programmers Java 코테 - 주사위 게임2 (1) | 2024.05.01 |
파이썬 알고리즘 작성 후 time 모듈로 실행시간 확인 (0) | 2022.09.21 |
Codeup 기초100문제 연습(5) - python (문제 6081) (0) | 2022.09.07 |
Codeup 기초100문제 연습(4) - python (문제 6077~6080) (0) | 2022.08.29 |