Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Author : Saurav Kalsoor
- // Sort By Digit Sum - KOTLIN
- import java.util.*
- var sc: Scanner = Scanner(System.`in`)
- fun main() {
- val n: Int = sc.nextInt()
- val arr: ArrayList<Int> = java.util.ArrayList<Int>()
- for (i in 0 until n) {
- val input: Int = sc.nextInt()
- arr.add(input)
- }
- val result: ArrayList<Int> = sortByDigits(arr)
- for (i in 0 until n)
- print(result.get(i).toString() + " ")
- println()
- }
- fun sortByDigits(arr: ArrayList<Int>): ArrayList<Int> {
- Collections.sort(arr, SortBySumOfDigits())
- return arr
- }
- internal class SortBySumOfDigits : Comparator<Int> {
- override fun compare(a: Int, b: Int): Int {
- val sumA = getSum(a)
- val sumB = getSum(b)
- return if (sumA == sumB) {
- a - b
- } else {
- sumA - sumB
- }
- }
- fun getSum(num: Int): Int {
- var n = num
- var sum = 0
- while (n > 0) {
- sum = sum + n % 10
- n = n / 10
- }
- return sum
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement