728x90
1) 문제설명
2) 해결방법
맨 처음에 이문제를 무슨 말인지 이해하기 까지 조금 시간이 걸렸습니다. 문제가 길고 뭔가가 복잡해보여서
문제만 3,4,번 읽어보았습니다.
기본적으로 이 문제를 풀기 위해서는 저는 subString() 메서드를 알아야한다고 생각했습니다.
subString() => 문자열을 특정 부분을 잘라주는 함수이다
출력할때도 subString(2,4) -> 인덱스2,3부분을 출력해주거나, 중간 문자를 교체 할 수 있습니다.
class Solution {
public String solution(String my_string, String overwrite_string, int s) {
//my_string -> 기존 문자열 , overwrite_string -> my_string에서 바꿀 문자, n몇번째까지 바꿀것인지
// 결과를 저장할 변수 answer를 만들어두고, int s를 넣어 어디부터 이어붙일지 정한다
// 기존 문자열 0부터 s-1까지의 부분과 overwrite_string을 이어붙인다.
String answer = my_string.substring(0, s) + overwrite_string;
// 만약 기존 문자열의 길이가 이어붙인 문자열보다 크다면
// 나머지 부분을 이어붙인다.
// overwrite_string 은 붙이는 것 이므로 my_string보다 길 수 없다.
if (my_string.length() > answer.length()) {
answer += my_string.substring(answer.length());
}
// answer에 누적된 값을 반환한다.
return answer;
}
}
3) 결과
subString() 메서드 개념을 모르면 풀 수 없는 문제였습니다
저도 풀다가 잘 몰라서 subString개념을 검색해보면서 풀었습니다.
초보자인 저한테는 조금 어려운 문제였던거 같습니다..
이 문제는 A4용지에 글로 쓰거나 그림을 그려가면서, 풀어보면 비교적 쉽게 이해를 할 수 있을것 같습니다
<다른사람풀이>
---> 젤 간결하고 좋은 코드라고 생각합니다.
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;
}
}
728x90