이구 졸리다..
내일 처음으로 후 맛집 프로젝트 팀원들과 식사 자리를 가진다..
얼른 글을 쓰고 자보자..
수박수박수박수박수박수?
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 메서드를 사용하여,
딱 한 줄로 표현하는 멋진 코드를 보았다.
하나, 내가 짠 코드가 다른 답변보다 훨씬 빠른 처리 속도를 보여주어,
이 답안을 제출하는 것으로 마무리하였다.