-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathLunarMathematicsAddition.java
45 lines (37 loc) · 1.39 KB
/
LunarMathematicsAddition.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package com.smlnskgmail.jaman.codewarsjava.kyu7;
import java.util.Collections;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
// https://www.codewars.com/kata/5c4b5f06b1fd9b3fec8cb03e
public class LunarMathematicsAddition {
private final int firstNumber;
private final int secondNumber;
public LunarMathematicsAddition(
int firstNumber,
int secondNumber
) {
this.firstNumber = firstNumber;
this.secondNumber = secondNumber;
}
public long solution() {
String maximumValue = String.valueOf(
Math.max(firstNumber, secondNumber)
);
String minimum = String.valueOf(
Math.min(firstNumber, secondNumber)
);
String minimumValue = String.join(
"",
Collections.nCopies(maximumValue.length() - minimum.length(), "0")
).concat(minimum);
return Integer.parseInt(
IntStream.range(0, maximumValue.length())
.mapToObj(value -> String.valueOf(
Math.max(
Character.getNumericValue(maximumValue.charAt(value)),
Character.getNumericValue(minimumValue.charAt(value))
))
).collect(Collectors.joining())
);
}
}