문제 설명
1부터 6까지 숫자가 적힌 주사위가 세개 있습니다. 세 주사위를 굴렸을 때 나온 숫자를 각각 a,b,c라고 했을 때 얻는 점수는 다음과 같습니다.
- 세 숫자가 다르다면 a+b+c 점을 얻습니다.
- 세 숫자중 어느 두 숫자는 같고 나머지 다른 숫자는 다르다면 (a+b+c)(a*a+b*b+c*c)점을 얻습니다.
- 세 숫자가 모두 같다면 (a+b+c)(a*a+b*b+c*c)(a*a*a+b*b*b+c*c*c)점을 얻습니다.
세 점수 a,b,c가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.
Solution.java
처음에 람다로 해보다가 세 숫자 중 어느 두숫자는 같고를 표현하는 법을 못찾아서..
전부 결합 법칙 교환법칙으로 분기를 나눠버렸다..
다시 가독성 있게 풀어보면 다음과 같다.
if (a == b && b == c){
answer = (a + b + c) * (a * a + b * b + c * c) * (a * a * a + b * b * b + c * c * c); }
else if (a != b && a != c && b != c) {
answer = a + b + c; }
else {
if (a == b || a == c || b == c) {
answer = (a + b + c) * (a * a + b * b + c * c); }
}
이렇게 풀었어야 했는데...
프로그래머스 lv.0 원소들의 곱과 (1) | 2025.03.24 |
---|---|
프로그래머스 lv.0 등차수열의 특정한 항만 더하기 (0) | 2025.03.24 |
프로그래머스 lv.0 코드 처리하기 (0) | 2025.03.23 |
프로그래머스 flag에 따라 다른 값 반환하기 (0) | 2025.03.23 |
프로그래머스 조건 문자열 (0) | 2025.03.23 |