[JS] 주사위 게임 2 programmers

0

코딩테스트

목록 보기
62/80
post-thumbnail

🎀 문제

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 함수를 작성해 주세요.

function solution(a, b, c) {
    var answer = 0;
    return answer;
}

🎀 내 답변

function solution(a, b, c) {
    if (a != b && a != c && b != c) {
        return a + b + c
    } else if (a == b && a == c && b == c) {
        return (a + b + c) *
                (a ** 2 + b ** 2 + c ** 2) *
                (a ** 3 + b ** 3 + c ** 3)
    } else {
        return (a + b + c) * (a ** 2 + b ** 2 + c ** 2)
    }
}
  1. if문으로 각각 나와야하는 식에 맞게 조건을 걸어주고 계산된 값을 반환한다.

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 코드가 정말 엄청나다
사실 중복되는 계산식은 변수로 빼내어도 좋았을 것 같은데 😂

🎀 더 나은 답변

function solution(a, b, c) {
    let sum1 = a + b + c;
    let sum2 = a * a + b * b + c * c;
    let sum3 = a ** 3 + b**3 + c**3;

    if (a === b && b === c) 
        return sum1*sum2*sum3;
     else if (a === b || a === c || b === c) 
        return sum1*sum2;
     else 
        return sum1;

}
  1. 변수에 각 계산식들을 저장한다.
  2. a와 b가 같고 b와 c가 같다면 a와 c는 굳이 같은지 비교하지 않아도 된다! 이렇게 코드를 줄일 수도있구나...
profile
일단 해. 그리고 잘 되면 잘 된 거, 잘 못되면 그냥 해본 거!

0개의 댓글