티스토리 뷰
문제 설명
문자열 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의 길이
내 답안
func solution(_ my_string:String, _ overwrite_string:String, _ s:Int) -> String {
var myString = my_string
let startIndex = myString.index(myString.startIndex, offsetBy: s)
let endIndex = myString.index(startIndex, offsetBy: overwrite_string.count)
myString.replaceSubrange(startIndex..<endIndex, with: overwrite_string)
return myString
}
접근 방법
- 교체할 부분의 시작 인덱스와 끝 인덱스를 구한다
- replaceSubrange를 써서 문자열을 교체한다
다른 풀이
func solution(_ my_string:String, _ overwrite_string:String, _ s:Int) -> String {
let a = my_string.prefix(s)
let b = overwrite_string
let c = my_string.suffix(my_string.count - overwrite_string.count - s)
return a + b + c
}
인덱스 대신 prefix와 suffix를 써서 바꾸려고 하는 부분을 구할 수도 있다
알게 된 것
replaceSubrange(_:,with:)
https://codingbackup.tistory.com/342
'코딩테스트' 카테고리의 다른 글
Lv.0 swift 1로 만들기 (0) | 2024.03.29 |
---|---|
Lv.0 swift 수열과 구간 쿼리 3 (0) | 2024.03.28 |
Lv.0 swift 분수의 덧셈 (0) | 2024.03.27 |
Lv.0 swift 배열 만들기 5 (0) | 2024.03.25 |
Lv.0 swift 날짜 비교하기 (0) | 2024.03.25 |
최근에 올라온 글