문제 설명
1. 문자열 s의 가운데 글자를 반환하는 함수 구현하기.
2. 단어의 길이가 짝수라면 가운데 두 글자를 반환.
풀이
1. 홀수일 때와 짝수일 때의 경우를 나누어 return
import Foundation
func solution(_ s: String) -> String {
let len: Int = s.count
let index = s.index(s.startIndex, offsetBy: len/2)
if len % 2 == 1 {
return String(s[index...index])
} else {
let startIndex = s.index(s.startIndex, offsetBy: len/2-1)
return String(s[startIndex...index])
}
}
코드 개선
1. 어차피 subString을 이용할 것이라면, 경우를 나눌 필요가 없다.
import Foundation
func solution(_ s: String) -> String {
let len: Int = s.count
let startIndex = s.index(s.startIndex, offsetBy: (len-1)/2)
let endIndex = s.index(s.startIndex, offsetBy: len/2)
return String(s[startIndex...endIndex])
}
String.Index 타입 공부하기!
'Study > 알고리즘' 카테고리의 다른 글
[프로그래머스] 12915. 문자열 내 마음대로 정렬하기 (swift) (0) | 2020.07.23 |
---|---|
[프로그래머스] 12912. 두 정수 사이의 합 (swift) (0) | 2020.07.21 |
MySQL 정리 (0) | 2020.06.04 |
[프로그래머스] 12979. 기지국 설치 (C++) (0) | 2020.05.29 |
[백준] 1922. 네트워크 연결 (C++) (0) | 2020.05.28 |