상세 컨텐츠

본문 제목

Java String 코테 문제

Programming/코테 공부

by Dal_pang 2024. 4. 25. 23:11

본문

기초 트레이닝 문제 풀기

문제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);
    }
}

 

728x90

관련글 더보기