본문 바로가기

알고리즘 문제풀이

프로그래머스 30. 가운데 글자 가져오기

문제 설명

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

재한사항
  • s는 길이가 1 이상, 100이하인 스트링입니다.

 

주석부터 달기 괜찮은거 같아서 문제풀기 전에 주석을 달아보고 생각을 해봤다

어떻게 가운데 글자를 추출해낼까..?

찾아보니 

index(_:offsetBy:) 메서드가 있었다..!

 

  • s.index(s.startIndex, offsetBy: n) - 문자열의 시작 인덱스로부터 n만큼 떨어진 인덱스를 반환
  • s.index(startIndex, offsetBy: n) - startIndex로부터 n만큼 떨어진 인덱스를 반환

나는 시작 인덱스로부터 n 만큼 떨어진 인덱스를 반환해야 했다

어떻게 사용하는지 잘 모르겠어서 지티피한테 물어봤는데 자꾸 내가 생각한거랑 다르게 알려주더라..

이해가 너무 되지않았다..

 

let start = s.index(s.startIndex, offsetBy: middleIndex - 1) 

let end = s.index(s.startIndex, offsetBy: middleIndex + 1)

 

이렇게 알려주는 것이여,, 아니 왜 중간인덱스에서 -1을 왜하냐고 왜? ㅋㅋㅋ아악! ㅎㅏ다가 내맘대로 고쳐버렸음..

 

하.. 언제쯤 검색을 안하고 알고리즘을 풀 수 있을까...?