❓ 문제
문자열 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_string | overwrite_string | s | result |
"He11oWor1d" | "lloWorl" | 2 | "HelloWorld" |
"Program29b8UYP" | "merS123" | 7 | "ProgrammerS123" |
✍🏻 JAVA
- 주어진 문자열 my_string을 s까지 자르고, 겹쳐 쓸 문자열 overwrite_string을 이어 ans에 할당해주었다.
- ans에 주어진 문자열 my_string을 ans 길이 다음부터 잘라 이어준 값을 리턴시켰다.
public String solution(String my_string, String overwrite_string, int s) {
String ans = my_string.substring(0, s) + overwrite_string;
return ans + my_string.substring(ans.length());
}
✍🏻 내가 처음 푼 Kotlin
- JAVA의 코드를 비슷하게 코틀린에 옮겼다.
- my_string을 s까지 자르고, 겹쳐 쓸 문자열 overwrite_string을 이어준 후 my_string을 s와 overwrite_string길이를 더한 값 부터 잘라서 이어주었다.
fun solution(my_string: String, overwrite_string: String, s: Int): String
= my_string.substring(0, s) + overwrite_string + my_string.substring(s + overwrite_string.length)
✍🏻 다른 풀이를 참고해서 푼 Kotlin
- replaceRange()라는 함수가 있는 것을 알게 되었다.
@kotlin.internal.InlineOnly
public inline fun String.replaceRange(startIndex: Int, endIndex: Int, replacement: CharSequence): String =
(this as CharSequence).replaceRange(startIndex, endIndex, replacement).toString()
- 해당 함수를 이용해 my_string의 s부터 s에 overwrite_string 길이를 더한 값까지의 문자열을 overwrite_string으로 바꿔주었다.
fun solution(my_string: String, overwrite_string: String, s: Int): String
= my_string.replaceRange(s, s + overwrite_string.length, overwrite_string)
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 181934. 조건 문자열 JAVA Kotlin (2) | 2023.12.05 |
---|---|
[프로그래머스] 132266. 부대 복귀 JAVA (1) | 2023.12.05 |
[프로그래머스] 풍선 터트리기 JAVA (0) | 2023.11.07 |
[프로그래머스] 도둑질 JAVA (0) | 2023.11.06 |
[프로그래머스] 문자열 안에 문자열 JAVA Kotlin (0) | 2023.11.01 |
댓글