Programmers/LV1.

Lv1 | Swift -제일 작은 수 제거하기

ziziDev 2024. 6. 25. 09:33
반응형

문제 설명

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

재한사항
  • s는 길이가 1 이상, 100이하인 스트링입니다.
입출력 예sreturn
"abcde" "c"
"qwer" "we"

나의 풀이

func solution(_ s:String) -> String {
    return s.count % 2 == 0 ? String(Array(s)[s.count/2-1...s.count/2]) : String(Array(s)[s.count/2])
}

배열의 크기가 짝수인지 홀 수 있지 판별한 후 범위 연산자를 사용하여 결과 도출을 했습니다

 

다른 사람 풀이

func solution(_ s:String) -> String {

    return String(s[String.Index(encodedOffset: (s.count-1)/2)...String.Index(encodedOffset: s.count/2)])
}

 

범위연산자를 사용하였으며

(s.count-1)/2 문자열 가운데 위치를 계산하는데 문자열의 길이가 홀수 일 때 정확히 가운데 반환하고

문자열의 길이가 짝수일 때 가운데 두 문자 중 첫 번째 문자의 위치를 반환하게 됩니다

 

(s.count/2) 경우 짝수일 때 두 번째 가운데 문자 위치를 홀수일 때는 가운데 문자와 같은 위치를 반환하고 있습니다

 

func solution(_ s: String) -> String {
    let middleStartIndex = s.index(s.startIndex, offsetBy: (s.count - 1) / 2)
    let middleEndIndex = s.index(s.startIndex, offsetBy: s.count / 2)
    return String(s[middleStartIndex...middleEndIndex])
}

 

 

반응형