문제
https://school.programmers.co.kr/learn/courses/30/lessons/181943
문제 설명
문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.
풀이
우선 my_string 문자열 변수의 길이가 overwrite_string 문자열 변수의 길이보다 클 경우 연산을 수행한다. 그 후 my_string의 앞부분(0번 인덱스부터 s까지)을 먼저 잘라 answer 변수에 더하고, overwrite_string 변수를 더하고, 마지막으로 my_string의 뒷부분(s + overwrite_string.length())을 answer변수에 더하여 리턴한다.
코드
class Solution {
public String solution(String my_string, String overwrite_string, int s) {
String answer = "";
if (my_string.length() > overwrite_string.length()) {
answer += my_string.substring(0, s);
answer += overwrite_string;
answer += my_string.substring(s + overwrite_string.length());
}
return answer;
}
}
나의 코드는 언뜻 보기에 가독성이 많이 떨어진다. 이를 수정했을때 아래와 같이 before과 after 변수를 추가 선언해 코드의 가독성을 개선할 수 있다.
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;
}
}
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Java] Lv.0 - 문자 리스트를 문자열로 변환하기 (0) | 2023.08.23 |
---|---|
[프로그래머스/Java] Lv.0 - 문자열 섞기 (0) | 2023.08.23 |
[프로그래머스/Java] Lv.0 - 홀짝 구분하기 (0) | 2023.08.21 |
[프로그래머스/Java] Lv.0 - 문자열 돌리기 (0) | 2023.08.21 |
[프로그래머스/Java] Lv.0 - 특수문자 출력하기 (0) | 2023.08.20 |