상세 컨텐츠

본문 제목

프로그래머스 lv.0 주사위 게임

코딩 공부/프로그래머스 lv.0

by 인이빵 2025. 3. 24. 01:50

본문

728x90
문제 설명

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); }
}
이렇게 풀었어야 했는데...

 

관련글 더보기