문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
고양이 두 마리와 쥐 한 마리가 있다. 고양이와 쥐의 시작위치가 주어진다. 쥐는 움직이지 않고 고양이는 같은 속도로 움직인다고 가정하고, 쥐를 처음으로 잡는 고양이를 정해야한다. 만약 고양이들이 동시에 도착하면 쥐는 움직일 수 있고, 고양이들이 싸우는 동안 쥐는 도망간다.
고양이 A, 고양이 B, 쥐 C 위치가 x, y, z로 표현된 쿼리 q가 주어진다. 각 쿼리에 맞는 답을 출력한다.
x = 2
y = 5
z = 4
고양이 A는 2, 고양이 B는 5, 쥐는 4에 있다. 5에 있는 고양이 B는 1번 이동으로 먼저 도착하고, 고양이 A는 2번 이동해야 도착한다. 그래서 'Cat B'를 반환한다.
catAndMouse 함수를 완성해라.
catAndMouse 함수는 아래와 같은 매개변수를 가지고 있다.
쥐의 위치를 기준으로 고양이들의 거리 차이를 구하고, 차이가 작은 고양이를 반환한다. 거리 차이가 같다면 쥐를 반환한다.
Math.abs를 통해 위치 값의 차를 절대값으로 구한다. 절대값을 구한 것을 따로 변수에 할당하지 않고 바로 비교하였다. 테스트 케이스가 많지 않아서 해당 코드로도 해결할 수 있다.
if(Math.abs(z - x) < Math.abs(z - y)){
return "Cat A";
}else if(Math.abs(z - x) > Math.abs(z - y)){
return "Cat B";
}else{
return "Mouse C";
}
static String catAndMouse(int x, int y, int z) {
if(Math.abs(z - x) < Math.abs(z - y)){
return "Cat A";
}else if(Math.abs(z - x) > Math.abs(z - y)){
return "Cat B";
}else{
return "Mouse C";
}
}