Easy
You are given two integers red
and blue
representing the count of red and blue colored balls. You have to arrange these balls to form a triangle such that the 1st row will have 1 ball, the 2nd row will have 2 balls, the 3rd row will have 3 balls, and so on.
All the balls in a particular row should be the same color, and adjacent rows should have different colors.
Return the maximum height of the triangle that can be achieved.
Example 1:
Input: red = 2, blue = 4
Output: 3
Explanation:
The only possible arrangement is shown above.
Example 2:
Input: red = 2, blue = 1
Output: 2
Explanation:
The only possible arrangement is shown above.
Example 3:
Input: red = 1, blue = 1
Output: 1
Example 4:
Input: red = 10, blue = 1
Output: 2
Explanation:
The only possible arrangement is shown above.
Constraints:
1 <= red, blue <= 100
import kotlin.math.max
@Suppress("NAME_SHADOWING")
class Solution {
private fun count(v1: Int, v2: Int): Int {
var v1 = v1
var v2 = v2
var ct = 1
var flag = true
while (true) {
if (flag) {
if (ct <= v1) {
v1 -= ct
} else {
break
}
} else {
if (ct <= v2) {
v2 -= ct
} else {
break
}
}
ct++
flag = !flag
}
return ct - 1
}
fun maxHeightOfTriangle(red: Int, blue: Int): Int {
return max(count(red, blue), count(blue, red))
}
}