달달한 스토리

728x90
반응형

출처 핀터레스트

 

이구 졸리다..

 

내일 처음으로 후 맛집 프로젝트 팀원들과 식사 자리를 가진다..

 

얼른 글을 쓰고 자보자..

 

수박수박수박수박수박수?

 

StringBuilder().apply {
    repeat(n) {
        append(if(it % 2 == 0) "수" else "박")
    }
}.toString()

내 처음 풀이는 이러했다.

 

전달받은 파라미터 n이 짝수인지, 홀수 인지 판단해서,

 

StringBuilder에 append를 반복해주는 코드이다.

 

이 코드도 정답이었지만,

 

답안에서 CharArray를 사용한 방법이 더 깔끔하고, 효율이 좋아 코드를 가져왔다.

 

//수박수박수박수박수박수?
class WaterMelonWaterMelon {
    fun solution(n: Int): String =
        String(CharArray(n) { i -> if (i % 2 == 0) '수' else '박' })
}

위에 코드보다 더 깔끔한 것 같다.

 

 

가운데 글자 가져오기

 

class GetMiddleLetter {
    fun solution(s: String): String =
        s.toCharArray()
            .let {
                StringBuilder().apply {
                    val half = s.length / 2
                    if(s.length % 2 == 0) append(it[half - 1]).append(it[half])
                    else append(s[half])
                }
            }.toString()
}

전달받은 stirng을 CharArray로 변화시키고,

 

StringBuilder에 apply 객체를 달아서, 

 

짝수이면 해당하는 두 글자를 append 하고,

 

홀수면 해당하는 한 글자를 append 하게 코드를 짜고,

 

마지막에는 string으로 변환하였다.

 

다른 답안을 보니 subString이나, slice 메서드를 사용하여,

 

딱 한 줄로 표현하는 멋진 코드를 보았다.

 

하나, 내가 짠 코드가 다른 답변보다 훨씬 빠른 처리 속도를 보여주어,

 

이 답안을 제출하는 것으로 마무리하였다.

728x90
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading