숑숑이의 개발일기

문제

https://school.programmers.co.kr/learn/courses/30/lessons/181943 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 설명

문자열 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;
    }
}
profile

숑숑이의 개발일기

@숑숑-

풀스택 개발자 준비중입니다