diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index f894050..9e088b6 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -4,6 +4,7 @@
-
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 38167d7..2266f6b 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,9 @@
+
+
+
diff --git a/src/main/kotlin/subtask1/HappyArray.kt b/src/main/kotlin/subtask1/HappyArray.kt
index 804b0b1..d5ebd86 100644
--- a/src/main/kotlin/subtask1/HappyArray.kt
+++ b/src/main/kotlin/subtask1/HappyArray.kt
@@ -2,8 +2,25 @@ package subtask1
class HappyArray {
- // TODO: Complete the following function
fun convertToHappy(sadArray: IntArray): IntArray {
- throw NotImplementedError("Not implemented")
+
+ val resultList = mutableListOf()
+
+ if (sadArray.isNotEmpty()) {
+ resultList.add(sadArray[0])
+ for (i in 1 until sadArray.lastIndex) {
+ when {
+ (sadArray[i] <= resultList.last() + sadArray[i + 1]) -> resultList.add(sadArray[i])
+ else -> {
+ for (j in resultList.lastIndex downTo 1) {
+ if (resultList[j] > resultList[j - 1] + sadArray[i + 1]) resultList.removeAt(j)
+ }
+ }
+ }
+ }
+ resultList.add(sadArray.last())
+ }
+ return resultList.toIntArray()
}
}
+
diff --git a/src/main/kotlin/subtask2/BillCounter.kt b/src/main/kotlin/subtask2/BillCounter.kt
index 2e6dbd9..3b6d814 100644
--- a/src/main/kotlin/subtask2/BillCounter.kt
+++ b/src/main/kotlin/subtask2/BillCounter.kt
@@ -1,10 +1,12 @@
package subtask2
class BillCounter {
-
- // TODO: Complete the following function
- // The output could be "Bon Appetit" or the string with number(e.g "10")
fun calculateFairlySplit(bill: IntArray, k: Int, b: Int): String {
- throw NotImplementedError("Not implemented")
+ var result = "StringResult"
+ var billAnna = (bill.filter { i -> i != bill[k] }.sum()) / 2
+
+ if (billAnna == b) result = "Bon Appetit"
+ else result = (b - billAnna).toString()
+ return result
}
}
diff --git a/src/main/kotlin/subtask3/StringParser.kt b/src/main/kotlin/subtask3/StringParser.kt
index 373659e..2e8663e 100644
--- a/src/main/kotlin/subtask3/StringParser.kt
+++ b/src/main/kotlin/subtask3/StringParser.kt
@@ -2,8 +2,52 @@ package subtask3
class StringParser {
- // TODO: Complete the following function
fun getResult(inputString: String): Array {
- throw NotImplementedError("Not implemented")
+ val target = listOf('(', ')', '<', '>', '[', ']')
+ val result = mutableListOf()
+ var count = 0
+ var min = 0
+ val max = inputString.length - 1
+
+ for (i in 0..max) {
+ if (target.contains(inputString[i])) {
+ when (inputString[i]) {
+ '(' -> {
+ if (i < max) min = i + 1
+ count = 0
+ for (j in min..max) {
+ when(inputString[j]) {
+ ')' -> if ( count == 0 ) result.add(inputString.substring(min, j))
+ else count--
+ '(' -> count++
+ }
+ }
+ }
+ '[' -> {
+ if (i < max) min = i + 1
+ count = 0
+ for (j in min..max) {
+ when(inputString[j]) {
+ ']' -> if ( count == 0) result.add(inputString.substring(min, j))
+ else count--
+ '[' -> count++
+ }
+ }
+ }
+ '<' -> {
+ if (i < max) min = i + 1
+ count = 0
+ for (j in min..max) {
+ when(inputString[j]) {
+ '>' -> if ( count == 0) result.add(inputString.substring(min, j))
+ else count--
+ '<' -> count++
+ }
+ }
+ }
+ }
+ }
+ }
+ return result.toTypedArray()
}
}