본문 바로가기

 𝗔𝗣𝗣𝗟𝗘/ALGORITHM

[내일배움캠프] 데일리 루틴(iOS_3회차) - 가운데 글자 가져오기

이미지를 클릭하면 코딩테스트 페이지로 이동합니다

 

 

내 풀이

func solution(_ s:String) -> String {
  let middleIdx = s.count / 2
  // middleIdx : 문자열 s의 가운데 index를 계산해서 저장
  var result = ""
  
  if s.count % 2 == 1 { 
    // 문자열이 홀 수 인 경우,
    result = "\(s[s.index(s.startIndex, offsetBy: middleIdx)])"
  } else { 
    // 문자열이 짝수인 경우,
    result = "\(s[s.index(s.startIndex, offsetBy: middleIdx-1)])" + "\(s[s.index(s.startIndex, offsetBy: middleIdx)])"
  }
  
    return result
}

 

- middleIdx변수를 선언하여 문자열 s의 가운데 인덱스 계산

- result 변수를 빈 문자열로 초기화

- 주어진 문자열의 길이가 홀수인지 짝수인지 확인

   홀수일 경우: 문자열의 가운데 글자를 가져와 result에 저장

   짝수일 경우: 가운데 두 글자를 가져와 result에 저장

 

 

자세히 살펴보자면,

"\(s[s.index(s.startIndex, offsetBy: middleIdx-1)])" 
+ "\(s[s.index(s.startIndex, offsetBy: middleIdx)])"

 

- "\( )"

   문자를 문자열로 변환

- s[index]

    문자열 s에서 특정 인덱스에 해당하는 문자를 가져오고, 이때 위에서 계산한 가운데 인덱스를 사용하여 해당 위치의 문자를 가져옴

- s.startIndex

    문자열 s의 시작 인덱스, 시작 인덱스는 첫 번째 글자를 가리킴

- s.index(s.startIndex, offsetBy: middleIdx)

    startIndex에서 middleIdx만큼 떨어진 새로운 인덱스를 생성

   즉, 가운데 인덱스에 해당하는 위치를 알 수 있음

- s.index(s.startIndex, offsetBy: middleIdx - 1)

    startIndex에서 middleIdx - 1만큼 떨어진 새로운 인덱스를 생성, 이는 가운데 인덱스의 직전 위치를 나타냄

 
Recent Posts
Visits
Today
Yesterday
Archives
Calendar
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31