🐥 Swift 문법 익숙해지기

Burkey·2024년 1월 12일
0

차근차근 Swift

목록 보기
11/15

최근에 프로그래머스 코딩 기초 트레이닝 문제들을(하루 목표치 만큼) 풀어보며 Swift 문법을 공부하고 있습니다.

오늘부터 해결한 문제 중에 인상깊었던 문제를 하나씩 가져와서 블로그에 작성하며 공부하는 시간을 가져보려합니다.

오늘 인상깊었던 문제 : 문자열 겹쳐쓰기


문제 설명

문자열 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_stringoverwrite_stringsresult
"He11oWor1d""lloWorl"2"HelloWorld"
"Program29b8UYP""merS123"7"ProgrammerS123"

나의 풀이

import Foundation

func solution(_ my_string:String, _ overwrite_string:String, _ s:Int) -> String {
    var start : String = my_string.substring(to:s)
    let index : Int = overwrite_string.count + s
    var end : String = my_string.substring(from:index)
    return start + overwrite_string + end 
}

swift에서 문자열을 접근 및 사용하는 것이 다른 언어보다 까다롭습니다.

index만 해도 Int타입은 되지 않고 String.index를 사용해야 합니다.
-> str1.startIndex, str1.endIndex 등을 사용한다.
-> index를 사용 시에는 String.index()사용해서 변환해줘야 한다.

원하는 범위의 문자열 원할 때

.substring(from : n) : n부터 끝까지의 문자열
.substring(to: n) : 처음부터 n까지의 문자열
.prefix(n) : 문자열 앞에서 n개의 문자열
.suffix(n) : 문자열 뒤에서 n개의 문자열
String.index를 사용하여 Index범위를 지정한 뒤에 추출 하는 방법도 있다.

let str1 = "123456789"
let range = str1.index(str1.startIndex, offsetBy : 3)
print(str1[...range]) // "1234"
profile
스탯 올리는 중

0개의 댓글