빵 좋아하는 개발자🥐
[Java 자바] 프로그래머스 level.0 문자열 겹쳐쓰기 본문
문제 설명
문자열 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_striing | overwrite_string | s |
"He11oWor1d" | "lloWorl" | 2 |
"Program29b8UYP" | "merS123" | 7 |
예시 #1
예제 1번의 my_string에서 인덱스 2부터 overwrite_string의 길이만큼에 해당하는 부분은 "11oWor1"
이를 "lloWorld" 로 바꾼 "HelloWorld" 를 return
예시 #2
예제 2번의 my_string에서 인덱스 7부터 overwrite_string의 길이만큼에 해당하는 부분은 "29b8UYP"
여길 "merS123"로 바꾼 "ProgrammerS123"를 return
import java.lang.String;
class Solution {
public String solution(String my_string, String overwrite_string, int s) {
String answer = "";
int ow_len = overwrite_string.length();
int ms_len = my_string.length();
answer = my_string.substring(0,s) + overwrite_string + my_string.substring(s+ow_len,ms_len);
return answer;
}
}
문자열이 대체되는 처음과 끝을 기준으로 my_string을 자르고 그 사이에 overwrite_string을 붙여넣으면 되겠구나 싶었음 substring( ) 쓰려고😗
substring( ) 메소드를 쓸 때 형식이 2가지가 있는데 난 그 중에서 처음 인덱스와 끝 인덱스를 인자로 넣어서 문자열을 잘라내는 방법을 사용했다.
public String substring(int 처음 인덱스, int 끝 인덱스) 의 형식임
1) 먼저 두 문자열의 길이를 각각 구해놈
2)
answer = ①my_string.substring(0,s) + ②overwrite_string + ③my_string.substring(s+ow_len,ms_len);
① 문자열이 대체되는 처음이 인덱스 s니까 인덱스 0~s까지 my_string문자열을 잘라냄
② 0~s 까지의 문자열 + overwrite_string
③ overwrite_string이 끝나는 부분의 인덱스 ~ my_string 마지막 인덱스까지 문자열을 잘라내서 붙여줌
이 때 substring( )의 인자로 들어가는
처음 인덱스 = s + overwrite_string 문자열의 길이
끝 인덱스 = my_string 문자열의 길이
로 구했음
'문제풀이 > 프로그래머스' 카테고리의 다른 글
[Java 자바 프로그래머스] Lv.1 기사단원의 무기 (0) | 2023.08.15 |
---|---|
[Java 자바] 프로그래머스 level.0 문자열 섞기 (0) | 2023.08.06 |
[Java 자바] 프로그래머스 Level.0 코드 처리하기 (0) | 2023.08.05 |
[Java 자바] 프로그래머스 level.0 가까운 1 찾기 (0) | 2023.07.21 |
[Java 자바] 프로그래머스 level.0 문자열 출력하기 (0) | 2023.07.07 |