문제
내가 작성한 정답
class Solution {
public int solution(int a, int b) {
if((a%2)*(b%2)==1) return a*a+b*b;
else if(Math.abs((a%2)-(b%2))!=0) return 2*(a+b);
else if(a%2==0&&b%2==0) return Math.abs(a-b);
return 0;
}
}다른 사람들의 정답
class Solution {
public int solution(int a, int b) {
return (a%2==1&&b%2==1?a*a+b*b:(a%2==1||b%2==1?2*(a+b):(a>b?a-b:b-a)));
}
}
class Solution {
public int solution(int a, int b) {
int evenCount = getEvenCount(a, b);
if (evenCount == 2) {
return Math.abs(a - b);
}
if (evenCount == 1) {
return 2 * (a + b);
}
return (int) (Math.pow(a, 2) + Math.pow(b, 2));
}
private int getEvenCount(int a, int b) {
int count = 0;
if (isEven(a)) {
count++;
}
if (isEven(b)) {
count++;
}
return count;
}
private boolean isEven(int value) {
return value % 2 == 0;
}
}Share article