반응형
문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
재한사항- s는 길이가 1 이상, 100이하인 스트링입니다.
"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])
}
반응형
'Programmers > LV1.' 카테고리의 다른 글
Lv1 | Swift -내적 (0) | 2024.06.27 |
---|---|
Lv1 | Swift -제일 작은 수 제거하기 (0) | 2024.06.26 |
Lv1 | Swift -제일 작은 수 제거하기 (0) | 2024.06.24 |
Lv1 | Swift - 핸드폰 번호 가리기 (0) | 2024.06.21 |
Lv1 | Swift - 나누어 떨어지는 숫자 배열 (0) | 2024.06.20 |