주사위 게임 1

남예지·2024년 1월 20일
0

미코

목록 보기
8/37

문제

1부터 6까지 숫자가 적힌 주사위가 두 개 있습니다. 두 주사위를 굴렸을 때 나온 숫자를 각각 a, b라고 했을 때 얻는 점수는 다음과 같습니다.

a와 b가 모두 홀수라면 a2 + b2 점을 얻습니다.
a와 b 중 하나만 홀수라면 2 × (a + b) 점을 얻습니다.
a와 b 모두 홀수가 아니라면 |a - b| 점을 얻습니다.
두 정수 a와 b가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.

쉽다. if if if 내가 궁금한건 이걸 어떻게 한 식으로 표현할 수 있나.이다.
다른사람의 풀이가 더 궁금해졌다.
우선 내 식대로 풀어보었다.

function solution(a, b) {
    var answer = 0;
    const num_A =(a % 2 === 0)
    const num_B =(b % 2 === 0)
    
    if(num_A && num_B){
        answer = (a-b)
    }else if(!num_A && !num_B){
        answer = (a**2) + (b**2)
    }else{
        answer = 2 * (a+b)
    }
    return answer < 0 ? -(answer) : answer;
}

다들 비슷하게 풀었지만. num_A 의 식을 재활용 가능하게 만드는 식이 가장 좋았다.

//남의 코드

function solution(a, b) {
  const isOdd = (num) => num % 2 === 1;

  return isOdd(a) && isOdd(b)
    ? a ** 2 + b ** 2
    : isOdd(a) || isOdd(b)
    ? 2 * (a + b)
    : Math.abs(a - b);
}

오늘 아침도 끝!

profile
총총

0개의 댓글