[프로그래머스/Java] Lv.0 주사위 게임 1

febCho·2024년 3월 20일
0

코딩테스트

목록 보기
114/253
post-thumbnail

문제

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

  • a와 b가 모두 홀수라면 a2 + b2 점을 얻습니다.
  • a와 b 중 하나만 홀수라면 2 × (a + b) 점을 얻습니다.
  • a와 b 모두 홀수가 아니라면 |a - b| 점을 얻습니다.

두 정수 a와 b가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.

- 제한사항

  • a와 b는 1 이상 6 이하의 정수입니다.

풀이

- 정답 1

절대값을 구해야 할 때 삼항 연산자를 사용했다가 뒤늦게 Math.abs() 메서드가 생각이 나서 두 방향으로 풀이했다.

class Solution {
    public int solution(int a, int b) {
        int answer = 0;
        
        if(a%2 == 1 && b%2 == 1){
            answer = (int)Math.pow(a, 2) + (int)Math.pow(b, 2);
        }else if(a%2 == 1 || b%2 == 1){
            answer = 2 * (a + b);
        }else{
            answer = a > b ? a - b : b - a;
        }
        
        return answer;
    }
}

- 정답 2

class Solution {
    public int solution(int a, int b) {
        int answer = 0;
        
        if(a%2 == 1 && b%2 == 1){
            answer = (int)Math.pow(a, 2) + (int)Math.pow(b, 2);
        }else if(a%2 == 1 || b%2 == 1){
            answer = 2 * (a + b);
        }else{
            answer = Math.abs(a - b);
        }
        
        return answer;
    }
}

결과

profile
Done is better than perfect.

0개의 댓글