ABOUT ME

-

  • algorithm
    자바 알고리즘 - 문자열 겹쳐쓰기
    2023. 8. 22. 21:09
    728x90

    문제 설명

    문자열 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의 길이

     

    입출력 예 설명

    예제 1번의 my_string에서 인덱스 2부터 overwrite_string의 길이만큼에 해당하는 부분은 "11oWor1"이고 이를 "lloWorl"로 바꾼 "HelloWorld"를 return 합니다.

     

    답안

    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;
        
        }
    }

    원래 제출한 답안은 my_string 길이에서 s를 뺀 값이 overwrite_string의 길이 보다 더 크면 나머지 뒷 부분을 잘라서 return하는 식으로 짰는데 훨씬 더 간편한 방법이 있어서 확인하고 다시 제출했다.

     

    my_string을 s만큼 자른 문자열을 before에 담고 after에 my_string을 s + overwrite_string의 길이를 더한 값부터 끝까지 자른 문자열을 넣는다. 이 때 s + overwirte_string 길이 값이 my_string 길이 보다 길다면 빈 값이 담긴다.

    그렇게 before 와 overwrite_string 과 after를 차례로 '+' 연산자를 통해 이어 붙여 return한다.

    728x90
Designed by Tistory.