class Solution {
fun solution(a: Int, b: Int, c: Int): Int {
val sum = a + b + c
val squareSum = a * a + b * b + c * c
val cubeSum = a * a * a + b * b * b + c * c * c
return when {
a == b && b == c -> sum * squareSum * cubeSum
a == b || b == c || a == c -> sum * squareSum
else -> sum
}
}
}
class Solution {
fun solution(a: Int, b: Int, c: Int): Int {
val set = intArrayOf(a, b, c).toSet()
return when (set.size) {
3 -> a + b + c
2 -> (a + b + c) * (a * a + b * b + c * c)
1 -> (a + b + c) * (a * a + b * b + c * c) * (a * a * a + b * b * b + c * c * c)
else -> -1
}
}
}
거듭제곱
2^3 = 2 × 2 × 2 = 8
intArrayOf
val array = intArrayOf(1, 2, 3)
toSet()
val list = listOf(1, 2, 2, 3)
val set = list.toSet()
println(set) // 출력: {1, 2, 3}
size
val array = intArrayOf(1, 2, 3)
println(array.size) // 출력: 3
이번 문제를 풀 때, 주어진 조건식을 그대로 나열하고 조건들 중 부합한 조건에 연산을 한 뒤 연산 값을 반환하게 했다. 이렇게만 풀면 간단한 문제 아닌가라고 생각하겠지만 결과를 제출하고나서 다른 사람의 문제풀이를 보고는 깜짝 놀랐다. toSet()을 저렇게 활용할 수도 있구나. 역시 사람은 아는만큼 보이는 것 같다. 코딩테스트할 때마다 흥미로운 점은 같은 문제도 이처럼 바라보는 관점이 다르고 풀이가 다르다는 것이다. 오늘도 배운다.