[Lv. 0] 주사위 게임 2프로그래머스/Level 02023. 5. 12. 13:59
Table of Contents
문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/181930
난이도 : Level.0
언어 : Kotlin
문제 설명 :
1부터 6까지 숫자가 적힌 주사위가 세 개 있습니다. 세 주사위를 굴렸을 때 나온 숫자를 각각 a, b, c라고 했을 때 얻는 점수는 다음과 같습니다.
- 세 숫자가 모두 다르다면 a + b + c 점을 얻습니다.
- 세 숫자 중 어느 두 숫자는 같고 나머지 다른 숫자는 다르다면 (a + b + c) × (a2 + b2 + c2 )점을 얻습니다.
- 세 숫자가 모두 같다면 (a + b + c) × (a2 + b2 + c2 ) × (a3 + b3 + c3 )점을 얻습니다.
세 정수 a, b, c가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.
제한 사항 :
- a, b, c는 1이상 6이하의 정수입니다.
입출력 예 :
a | b | c | result |
2 | 6 | 1 | 9 |
5 | 3 | 3 | 473 |
4 | 4 | 4 | 110592 |
풀이 :
import kotlin.math.pow
class Solution {
fun solution(a: Int, b: Int, c: Int): Int {
var answer = intArrayOf(a, b, c)
val newGroup = answer.groupBy { it }
return when (newGroup.size) {
3 -> answer.sum()
2 -> {
(answer[0] + answer[1] + answer[2]) * (answer[0].toDouble().pow(2) + answer[1].toDouble().pow(2) + answer[2].toDouble().pow(2)).toInt()
}
1 -> {
((answer[0] * 3) * (answer[0].toDouble().pow(2) * 3) * (answer[0].toDouble().pow(3) * 3)).toInt()
}
else -> -1
}
}
}
'프로그래머스 > Level 0' 카테고리의 다른 글
[Lv. 0] 코드 처리하기 (0) | 2023.05.12 |
---|---|
[Lv. 0] 등차수열의 특정한 항만 더하기 (0) | 2023.05.12 |
[Lv. 0] 원소들의 곱과 합 (0) | 2023.05.12 |
[Lv. 0] 이어 붙인 수 (0) | 2023.05.12 |
[Lv. 0] 마지막 두 원소 (0) | 2023.05.11 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!