주사위 게임 1

nacSeo (낙서)·2024년 3월 20일
0

프로그래머스

목록 보기
129/169

문제 설명

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 이하의 정수입니다.

나의 코드

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

다른 사람 코드

import java.util.*;
class Solution {
    public int solution(int a, int b) {
        int answer = 0;

        if(a % 2 != 0 && b % 2 != 0) {
            answer = (a * a) + (b * b);
        }else if(a % 2 != 0 || b % 2 != 0) {
            answer = 2 * (a + b);
        }else if(a % 2 == 0 && b % 2 == 0) {
            answer = Math.abs(a - b);
        }

        return answer;
    }
}

|a-b|를 나타낼 때 Math.abs() 함수 사용

느낀 점

3개의 조건들을 차근차근 조건문을 통해 풀어내면 풀 수 있다. 절대값을 나타낼 때, 내가 짠 코드처럼 음수값을 직접 바꿔줄 수도 있지만 Math.abs()함수를 사용하여 바꿔줄 수도 있었다.

profile
백엔드 개발자 김창하입니다 🙇‍♂️

0개의 댓글