2026.02.27(FRI)_84일차
1. 문제
문제 설명
문자열
my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.제한사항
my_string와overwrite_string은 숫자와 알파벳으로 이루어져 있습니다.
- 1 ≤
overwrite_string의 길이 ≤my_string의 길이 ≤ 1,000
- 0 ≤
s≤my_string의 길이 -overwrite_string의 길이
입출력 예
my_string | overwrite_string | s | result |
"He11oWor1d" | "lloWorl" | 2 | "HelloWorld" |
"Program29b8UYP" | "merS123" | 7 | "ProgrammerS123" |
입출력 예 설명
입출력 예 #1
- 예제 1번의
my_string에서 인덱스 2부터overwrite_string의 길이만큼에 해당하는 부분은 "11oWor1"이고 이를 "lloWorl"로 바꾼 "HelloWorld"를 return 합니다.
입출력 예 #2
- 예제 2번의
my_string에서 인덱스 7부터overwrite_string의 길이만큼에 해당하는 부분은 "29b8UYP"이고 이를 "merS123"로 바꾼 "ProgrammerS123"를 return 합니다.
2. 풀이
오답
class Solution {
public String solution(String my_string, String overwrite_string, int s) {
String answer = my_string.replace(my_string.substring(s, s+overwrite_string.length()),overwrite_string);
return answer;
}
}- 바꿔야 하는 구간의 문자열이 앞/뒤 다른 위치에도 동일하게 존재한다면
replace()가 “s 위치”가 아닌 다른 위치의 동일 문자열까지 건드리게 됨
정답
class Solution {
public String solution(String my_string, String overwrite_string, int s) {
String answer = my_string.substring(0,s) + overwrite_string + my_string.substring(s+overwrite_string.length());
return answer;
}
}3. 다른 사람의 풀이
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;
}
}Share article