티스토리 뷰

코딩테스트

Lv.0 swift 문자열 앞의 n글자

알롱도담쓰 2024. 3. 19. 11:45

문제 설명

문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string의 앞의 n글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요.

제한 조건

my_string은 숫자와 알파벳으로 이루어져 있습니다.
1 ≤ my_string의 길이 ≤ 1,000
1 ≤ n ≤ my_string의 길이

내 답안

func solution(_ my_string:String, _ n:Int) -> String {
    return String(my_string.prefix(n))
}

접근 방법

  1. 처음부터 n번째까지 반환하는 함수 사용

다른 풀이

func solution(_ my_string:String, _ n:Int) -> String {
    return my_string.map{String($0)}[...(n-1)].joined()
}
  1. map으로 문자열 배열로 변환
  2. 슬라이싱 [...]을 통해 n개의 요소를 선택하고 joined로 합침

 

func solution(_ my_string:String, _ n:Int) -> String {
    let index = my_string.index(my_string.startIndex, offsetBy: n)
    
    return String(my_string[my_string.startIndex..<index])
	// 똑같은 부분이 많아 가독성이 떨어지니까
    // return String(my_string[..<index]) 라고 해도 괜찮았을 것 같다
}

 

  1. String.index(문자열의 시작 인덱스, offsetBy: 구하려고 하는 인덱스의 숫자)로 인덱스를 구해서 슬라이싱을 통해 반환

 

func solution(_ my_string:String, _ n:Int) -> String {
    let subStr1 = my_string.substring(to: my_string.index(my_string.startIndex, offsetBy: n))
    return subStr1
}

 

 

 

알게 된 것

  • substring(to:)는 swift4 에서 삭제되었다! 

'코딩테스트' 카테고리의 다른 글

Lv.0 swift n개 간격의 원소들  (0) 2024.03.20
Lv.0 swift 수 조작하기  (0) 2024.03.20
Lv.0 swift 제곱수 판별하기  (0) 2024.03.18
Lv.0 swift 모음 제거  (0) 2024.03.18
Lv.0 Swift 문자 반복 출력하기  (0) 2024.03.18
최근에 올라온 글