Java

[코딩 기초 트레이닝] 문자열 겹쳐쓰기

Song hyun 2024. 12. 21. 17:00
728x90
반응형
문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.

 
 
위의 문제를 보면 알 수 있듯이, 두 개의 문자열과 하나의 정수가 주어진다. 문자열 my_string의 s번째부터 overwrite_string의 길이만큼 문자열을 교체해주는 식이다. 

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

 여러 방식 (for이라든가...)으로 시도해보려고 했는데, 처음에는 '0레벨이니까 쉽겠지!!'라고 생각했는데 생각보다 어려운 문제였다. 그래서 쉽게 풀리질 않았다. 
 
 위의 코드는 특정 문자열에 대해서는 성공으로 뜨지만, 특정 문자열에서는 실패 결과가 나왔다. 계속 고민하다가 다른 사람들의 풀이를 살펴봤다. 아래는 가장 인기가 많은(깔끔하다고 칭찬이 많았음) 답안 코드였다.
 

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;
    }
}
  1. before 문자열 = 교체되지 않는 my_string
  2. after 문자열 = 교체될 부분의 my_string

 

 

728x90
반응형