View difference between Paste ID: R2924Z7h and YxWZDY91
SHOW: | | - or go back to the newest paste.
1
// Author : Saurav Kalsoor
2-
// Sort By Digit Sum - JAVA
2+
// Sort By Digit Sum - KOTLIN
3
4-
import java.util.*;
4+
import java.util.*
5
6-
public class Test {
6+
var sc: Scanner = Scanner(System.`in`)
7-
    
7+
8-
    static Scanner sc = new Scanner(System.in);
8+
fun main() {
9-
    public static void main(String[] args) {
9+
    val n: Int = sc.nextInt()
10-
        int n = sc.nextInt();
10+
    val arr: ArrayList<Int> = java.util.ArrayList<Int>()
11-
        ArrayList<Integer> arr = new ArrayList<>();
11+
    for (i in 0 until n) {
12
        val input: Int = sc.nextInt()
13-
        for(int i=0; i < n; i++) {
13+
        arr.add(input)
14-
            int input = sc.nextInt();
14+
15-
            arr.add(input);
15+
16
    val result: ArrayList<Int> = sortByDigits(arr)
17
18-
        ArrayList<Integer> result = sortByDigits(arr);
18+
    for (i in 0 until n)
19-
        
19+
        print(result.get(i).toString() + " ")
20-
        for(int i=0; i < n; i++)
20+
    println()
21-
            System.out.print(result.get(i) + " ");
21+
22-
        
22+
23-
        System.out.println();
23+
fun sortByDigits(arr: ArrayList<Int>): ArrayList<Int> {
24
    Collections.sort(arr, SortBySumOfDigits())
25
    return arr
26-
    public static ArrayList<Integer> sortByDigits(ArrayList<Integer> arr){
26+
27-
        Collections.sort(arr, new SortBySumOfDigits());
27+
28-
        return arr;
28+
internal class SortBySumOfDigits : Comparator<Int> {
29
    override fun compare(a: Int, b: Int): Int {
30
        val sumA = getSum(a)
31
        val sumB = getSum(b)
32-
class SortBySumOfDigits implements Comparator<Integer> {
32+
        return if (sumA == sumB) {
33-
 
33+
            a - b
34-
    public int compare(Integer a, Integer b){
34+
        } else {
35
            sumA - sumB
36-
        int sumA = getSum(a), sumB = getSum(b);
36+
37-
        if(sumA == sumB){
37+
38-
            return a - b;
38+
39
    fun getSum(num: Int): Int {
40-
        else{
40+
        var n = num
41-
            return sumA - sumB;
41+
        var sum = 0
42
        while (n > 0) {
43
            sum = sum + n % 10
44
            n = n / 10
45-
    public int getSum(int n){
45+
46-
        int sum = 0;
46+
        return sum
47-
        while(n > 0){
47+
48-
            sum = sum + n%10;
48+
}