가운데 글자 가져오기

KSang·2023년 12월 1일
0

[Kotlin]코드카타

목록 보기
29/100

🕵️문제설명

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

⚠️제한조건

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

🤔 알고리즘 생각해보기

문자를 입력 받고 배열로 변경해보자

문자의 전체 사이즈를 통해 몇번째 열이 문자의 가운데인지를 알아내고

가운데 문자로 이루어진 배열을 만든후 string화 해서 출력하면 될것같다

🔎 진행 과정

main

fun main() {
    println("문자를 입력해주세요")
    val input = readln()

    println("${solution(input)}")
}

solution

fun solution(s: String): String {
    val chararr = s.toCharArray()
    val x = chararr.size/2

입력받은 문자열을 문자배열로 만들어주고

문자열의 가운데를 표시해줄 변수를 만들어준다

return when (chararr.size % 2){
        1 -> return chararr[x].toString()
        0 -> return chararr.sliceArray((x-1)..(x)).joinToString("")
        else -> ""
    }

이어서 조건문을 이용해 홀수면 문자열의 가운데에 있는 문자를 string화 해주면서 리턴하고

짝수면 sliceArray를 통해 배열의 범위를 선택해준뒤

joinToString을 이용해 문자열로 변환해준다 ""은 문자열로 변환할때 배열과 배열사이에 들어갈 문자를 적어준다

문자열은 [0]부터 시작이기 때문에 x는 그냥 두면된다

📌최종 결과

package com.example.codekata

fun main() {
    println("문자를 입력해주세요")
    val input = readln()
    if (input.length < 1){
        println("길이는 1이상 이어야 합니다")
    }else if (input.length > 100){
        println("문자의 길이가 너무 깁니다")
    }
    println("${solution(input)}")
}

fun solution(s: String): String {
    val chararr = s.toCharArray()
    val x = chararr.size/2
    return when (chararr.size % 2){
        1 -> return chararr[x].toString()
        0 -> return chararr.sliceArray((x-1)..(x)).joinToString("")
        else -> ""
    }
}

0개의 댓글