코딩테스트

[프로그래머스/JAVA] 코딩 기초 트레이닝 > 문자열 겹쳐쓰기

데메즈 2025. 7. 15. 11:58
반응형

class Solution {
    public String solution(String my_string, String overwrite_string, int s) {
        String answer = my_string.substring(0,s) + overwrite_string;
        
        if(my_string.length() > answer.length()){
            answer += my_string.substring(answer.length());
        }
        
        return answer;
    }
}
String substring(int index)

: index부터 끝까지 리턴

 

String my_string = "He11loWor1d";

return my_string.substring(8);

하면 인덱스 8부터 마지막까지 문자 리턴 ➡ 1d

문자열 H e 1 1 o W o r 1 d
인덱스 0 1 2 3 4 5 6 7 8 9

 

 

String substring(int start, int end)

: start부터 (end-1)까지 리턴

 

String my_string = "He11loWor1d";

return my_string.substring(2,6);

하면 인덱스 2부터 5 (6-1)까지 문자 리턴 ➡ 11oW

문자열 H e 1 1 o W o r 1 d
인덱스 0 1 2 3 4 5 6 7 8 9

 


다른 풀이
class Solution {
    public String solution(String my_string, String overwrite_string, int s) {
        String before = my_string.substring(0, s);
        String after = my_string.substring(s + overwrite_string.length());
        return before + overwrite_string + after;
    }
}
class Solution {
    public String solution(String my_string, String overwrite_string, int s) {
        char[] my_chars = my_string.toCharArray();
        char[] overwrite_chars = overwrite_string.toCharArray();
        for (int i=0; i<overwrite_chars.length; i++) {
            my_chars[s + i] = overwrite_chars[i];
        }
        return String.valueOf(my_chars);
    }
}

my_string.toCharArray() ➡ char 배열로

String.valueOf(my_chars);

class Solution {
    public String solution(String my_string, String overwrite_string, int s) {
        StringBuilder sb = new StringBuilder(my_string);
        sb.replace(s, s + overwrite_string.length(), overwrite_string);
        return sb.toString();
    }
}

 

반응형