주사위 게임 1(with.Java)
“주사위 게임 1” 문제에 대하여 알아본 글입니다.
코딩 테스트 문제를 풀며, 풀었던 문제에 대한 회고와 다른 풀이 방법을 알아보며, 알아가고자 합니다.
문제에 대해 먼저 알아보겠습니다.
문제
1부터 6까지 숫자가 적힌 주사위가 두 개 있습니다. 두 주사위를 굴렸을 때 나온 숫자를 각각 a, b라고 했을 때 얻는 점수는 다음과 같습니다.
a와 b가 모두 홀수라면 a2 + b2 점을 얻습니다.
a와 b 중 하나만 홀수라면 2 × (a + b) 점을 얻습니다.
a와 b 모두 홀수가 아니라면 | a - b | 점을 얻습니다. |
두 정수 a와 b가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.
입출력 예시
a | b | result |
---|---|---|
3 | 5 | 34 |
6 | 1 | 14 |
2 | 4 | 2 |
문제에 대한 나의 풀이
class Solution {
public int solution(int a, int b) {
int answer = 0;
int oddA = a % 2;
int oddB = b % 2;
if(oddA != 0 && oddB != 0){
answer = (int)(Math.pow(a, 2) + Math.pow(b, 2));
}else if(oddA == 0 && oddB == 0){
answer = Math.abs(a - b);
}else{
answer = 2 * (a + b);
}
return answer;
}
}
풀이 설명
만약 a와 b 모두 홀수이면, 두 숫자의 제곱을 더합니다.
만약 a와 b 모두 짝수이면, 두 숫자의 차이를 절댓값으로 반환합니다.
그렇지 않은 경우, 두 숫자를 더한 후 그 결과에 2를 곱합니다.
코드를 간략하게 설명하겠습니다:
int answer = 0;: 결과를 저장할 정수형 변수 answer를 초기화합니다.
int oddA = a % 2;와 int oddB = b % 2;: a와 b가 홀수인지 짝수인지 판단하기 위해 나머지 연산을 사용하여 oddA와 oddB 변수에 저장합니다. 만약 홀수라면 나머지가 1, 짝수라면 나머지가 0이 될 것입니다.
if(oddA != 0 && oddB != 0) : a와 b가 모두 홀수인 경우:
a와 b의 제곱을 더한 값을 answer에 저장합니다.
else if(oddA == 0 && oddB == 0) : a와 b가 모두 짝수인 경우:
a와 b의 차이를 구한 후 절댓값을 취하여 answer에 저장합니다.
else : 그 외의 경우 (하나는 홀수, 하나는 짝수인 경우):
a와 b를 더한 후 그 결과에 2를 곱하여 answer에 저장합니다.
return answer;: 계산된 결과를 반환합니다.