"Cats and a Mouse" 문제에서는 선상에 있는 두 마리의 고양이와 한 마리의 쥐의 위치가 주어집니다. 여러분의 임무는 쥐가 움직이지 않고 고양이들이 같은 속도로 이동한다고 가정했을 때, 어느 고양이가 쥐에게 먼저 도달할지 결정하는 것입니다. 만약 두 고양이가 동시에 쥐에게 도달한다면, 쥐는 이동할 수 있게 되고, 싸우는 동안 도망칠 것입니다.
각 쿼리는 고양이 A, 고양이 B, 그리고 쥐 C의 위치를 나타내는 x, y, z의 형태로 주어집니다. 각 쿼리에 대한 적절한 답을 반환하는 함수를 완성해야 합니다.
- 고양이 A가 쥐를 먼저 잡으면 "Cat A"를 출력합니다.
- 고양이 B가 쥐를 먼저 잡으면 "Cat B"를 출력합니다.
- 두 고양이가 동시에 쥐에 도달하면, 싸우는 동안 쥐가 도망치므로 "Mouse C"를 출력합니다.
예를 들어, 고양이 A가 위치 1에, 고양이 B가 위치 2에, 쥐가 위치 3에 있다면, 고양이 B가 먼저 도착하므로 "Cat B"를 반환합니다.
풀이 :
function catAndMouse(x, y, z) {
const distanceA = Math.abs(z-x)
const distanceB = Math.abs(z-y)
if (distanceA < distanceB) {
return "Cat A";
} else if (distanceB < distanceA) {
return "Cat B";
} else {
return "Mouse C";
}
}
고양이 A와 B가 쥐에게 도달하는 데 필요한 거리를 계산합니다. 거리는 쥐의 위치에서 각 고양이의 위치를 뺀 절대값으로 구합니다. 고양이 A가 더 가까이 있으면 "Cat A"를, 고양이 B가 더 가까이 있으면 "Cat B"를 반환합니다. 두 고양이가 동일한 거리에 있으면 "Mouse C"를 반환합니다.
'Fundamentals > Algorithms' 카테고리의 다른 글
[해커랭크] Picking Numbers (0) | 2023.12.12 |
---|---|
[해커랭크] Forming a Magic Square (0) | 2023.12.12 |
[해커랭크] Electronics Shop (0) | 2023.12.06 |
[해커랭크] Counting Valleys (0) | 2023.12.06 |
[해커랭크] Sales by Match (0) | 2023.12.05 |