[프로그래머스] Lv. 1 가운데 글자 가져오기(Kotlin)

hxeyexn·2023년 4월 11일
0

[프로그래머스] Lv. 1

목록 보기
18/26
post-thumbnail

가운데 글자 가져오기

문제 설명

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

제한 사항

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

풀이

class Solution {
    fun solution(s: String): String {
        var answer = ""
        var len = s.length
        
        if ( len % 2 == 0 ) {
            answer = s.substring(len / 2 - 1,  len / 2 + 1)
        } 
        else {
            answer = s.substring(len / 2, len / 2 + 1)
        }
            
        return answer
    }
}

다른 사람 풀이1

class Solution {
  fun solution(s: String) =
    with(s) { substring(length / 2 - 1 + (length % 2) .. length / 2) }
}
  • with
    inline fun <T, R> with(receiver: T, block: T.() -> R): R
    : 두 개의 파라미터를 받고 있는 함수
    : 첫번째 인자 - 수신객체
    : 두번째 인자 - 첫 번째에 받은 인자가 수신 객체인 람다
    : 객체 이름을 반복하지 않고 사용하고 싶을 때 with 함수를 사용하면 편리

다른 사람 풀이2

class Solution {
    fun solution(s: String) = s.slice(((s.length - 1) / 2)..(s.length / 2))
}
  • slice
    fun <T> Array<out T>.slice(indices: IntRange): List<T>
    fun <T> List<T>.slice(indices: IntRange): List<T>
    : slice() 를 사용하여 지정된 위치의 element 로 새로운 list 를 구성
    : 주어진 인덱스가 있는 컬렉션 요소 목록을 반환
profile
Android Developer

0개의 댓글