-
[Swift] 알고리즘 공부 - 가운데 글자 가져오기알고리즘 공부/프로그래머스 2023. 3. 30. 00:38반응형
문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
제한 사항
- s는 길이가 1 이상, 100이하인 스트링입니다.
입출력 예
s return"abcde" "c" "qwer" "we" 설명
1. s의 가운데를 뽑기 위해 s를 array로 변환
2. s가 짝수인지 홀수 인지 판별
3. 홀수면 array로 변환한 s의 가운데 글자를 String으로 변환하여 리턴
4. 짝수면 가운데 2글자 string으로 변환후 합쳐서 리턴
func solution(_ s:String) -> String { if s.count == 1 { return s } return s.count % 2 == 1 ? String(Array(s)[s.count/2]) : String(Array(s)[s.count / 2 - 1]) + 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)]) }
이런 깔끔한 코드를 볼 수 있었다.
String.index라는 string함수를 사용해서 문제를 해결했다.
예를들어 s가 "abcde"일때 s[String.Index(encodedOffset: 1)]는 s문자열에서 2번째 문자를 출력 즉 b를 출력한다
반응형'알고리즘 공부 > 프로그래머스' 카테고리의 다른 글
[Swift] 알고리즘 공부 - 내적 (0) 2023.03.30 [Swift] 알고리즘 공부 - 수박수박수박수박수박수? (0) 2023.03.30 [Swift] 알고리즘 공부 - 제일 작은 수 제거하기 (0) 2023.03.28 [Swift] 알고리즘 공부 - 음양 더하기 (0) 2023.03.28 [Swift] 알고리즘 공부 - 핸드폰 번호 가리기 (0) 2023.03.28