문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.
class Solution {
public String solution(String my_string, String overwrite_string, int s) {
String answer = "";
answer = my_string.substring(0,s) + overwrite_string;
return answer;
}
}
처음엔 substring()으로 인덱스 s 전까지를 잘라낸 다음 바꿀 문자열 overwrite_string을 결합해 answer를 반환하면 된다고 단순히 생각했다.
그런데 코드를 실행해 보니 2개의 입출력 예제 중 하나만 정답인 거다.
(* 실행한 결괏값 "HelloWorl"이 기댓값 "HelloWorld"과 다릅니다.)
그제서야 문제에 'overwrite_string의 길이만큼을'이라고 명시한 것이 눈에 띄었고
다음과 같이 코드를 변경하였다.
문자열 overwrite_string과 my_string의 길이값을 변수에 할당할까 하다가 한 번만 쓰려고 변수를 사용하는 건 비효율적이라는 말씀이 생각나 substring()에 바로 대입했다.
class Solution {
public String solution(String my_string, String overwrite_string, int s) {
String answer = "";
answer = my_string.substring(0,s) + overwrite_string;
answer += my_string.substring(s+overwrite_string.length(),my_string.length());
return answer;
}
}
