자바로만 코딩 테스트를 하다가 코틀린으로 하니..
너무 수월한 내장함수들이 많은 듯하다..
자바에서는 Arrays나, Collections 클래스를 많이 이용하고,
그에 맞게 namespace를 import 해주었는데,
코틀린은 내부에 적절하게 위에 코드에서 구현할 수 있는
메서드를 가지고 있어서 굳이, import하지 않고,
간편하게 구현할 수 있었다.
아래 문제를 보자.
자연수 뒤집어 배열로 만들기
//자연수 뒤집어 배열로 만들기
class FlipNaturalNumbersToFormAnArray {
fun solution(n: Long): IntArray =
n.toString()
.reversed()
.map { it.toString().toInt() }
.toIntArray()
}
파라미터로 받은 n값을 문자열로 바꾸고, reversed() 메서드를 통해
문자열에 순서를 거꾸로 만들어 준다.
그리고, 각 값을 정수형으로 바꾸고,
IntArray로 변환해주고 반환한다.
위에서 보는 것처럼, 손쉽게 reversed() 메서드를 통해 문자열의 순서를 바꾸어 줄 수 있다.
코틀린.. 좋다..
다음 문제를 보자.
하샤드 수
//하샤드 수
class HashadSu {
fun solution(x: Int): Boolean {
val sum = x.toString().map {
it.toString().toInt()
}.sum()
return x % sum == 0
}
}
전달받은 x의 각 자릿수의 합을 x로 나눌 때, 나누어지는지 아닌지에 대한
불리언을 반환하는 과제이다.
map을 사용하기 위해 int 값을 String으로 변환했고,
각 값을 다시 int로 바꾸어 sum() 메서드로 더해준다.
그리고, x가 이 sum으로 나누어지는지에 대한 불리언을 반환한다.
코틀린 알면 알수록 재밌다... 더 풀어보자..