문제 설명
1부터 6까지 숫자가 적힌 주사위가 두 개 있습니다. 두 주사위를 굴렸을 때 나온 숫자를 각각 a, b라고 했을 때 얻는 점수는 다음과 같습니다.
- a와 b가 모두 홀수라면 a제곱+ b제곱 점을 얻습니다.
- a와 b 중 하나만 홀수라면 2 * (a + b)점을 얻습니다.
- a와 b 모두 홀수가 아니라면 | a - b | 점을 얻습니다.
두 정수 a와 b가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.
제한사항
- a와 b는 1 이상 6 이하의 정수입니다.
입출력 예
a | b | result |
3 | 5 | 34 |
6 | 1 | 14 |
2 | 4 | 2 |
class Solution {
public int solution(int a, int b) {
int answer = 0;
if (a % 2 != 0 && b % 2 != 0) {
answer = (int)(Math.pow(a, 2) + Math.pow(b, 2));
} else if (a % 2 == 0 && b % 2 == 0) {
answer = Math.abs(a - b);
} else {
answer = 2 * (a + b);
}
return answer;
}
}
if문에서 a를 2로 나눈 나머지가 0이 아닐 때와 동시에 b를 2로 나눈 나머지가 0이 아닐 때, 즉 두 조건이 모두 홀수일 때 Math 클래스의 pow 메소드를 이용하여 값을 구합니다. pow 메소드는 제곱수를 구할 수 있습니다. 이는 입력값과 출력값이 모두 double형이므로 (int) 캐스팅으로 answer에 할당해야 합니다. 메소드를 이용하여 a제곱과 b제곱을 더한 값을 할당합니다.
만약 a를 2로 나눈 나머지가 0일 때와 동시에 b를 2로 나눈 나머지가 0일 때, 즉 두 조건이 모두 짝수일 때 Math 클래스의 abs 메소드를 이용합니다. 이는 절댓값을 구하는 메소드입니다. 이는 모든 수를 양수로 표현합니다. a에서 b를 뺀 값의 절댓값을 answer에 할당합니다.
만약 앞선 두 조건을 충족하지 않는 나머지는 a와 b를 더한 값에서 2를 곱한 값을 answer에 할당합니다.
'프로그래머스 > Lv. 0(코딩 기초 트레이닝)' 카테고리의 다른 글
[프로그래머스 코딩테스트] 특별한 이차원 배열 1(Java) (1) | 2023.05.04 |
---|---|
[프로그래머스 코딩테스트] 조건에 맞게 수열 변환하기 3(Java) (0) | 2023.05.04 |
[프로그래머스 코딩테스트] 정수 찾기(Java) (0) | 2023.05.04 |
[프로그래머스 코딩테스트] 부분 문자열 (Java) (0) | 2023.05.04 |
[프로그래머스 코딩테스트] 부분 문자열인지 확인하기(Java) (0) | 2023.05.03 |