C & C++/HackerRank
[HackerRank] Cats and Mouse
와금
2021. 7. 9. 15:00
728x90
https://www.hackerrank.com/challenges/cats-and-a-mouse/problem
Cats and a Mouse | HackerRank
Which cat will catch the mouse first?
www.hackerrank.com
Algorithms > Implementation
Cat A, Cat B, Mouse C의 위치가 차례로 주어지면, Cat A와 Cat B 중에 Mouse C와의 위치가 더 가까운 쪽을 리턴하는 문제이다.
만약 거리가 같으면 Mouse C를 리턴한다.
코드
char* catAndMouse(int x, int y, int z) {
int dA, dB;
dA = (x - z > 0) ? x - z : z - x;
dB = (y - z > 0) ? y - z : z - y;
if (dA < dB) return "Cat A";
else if (dA > dB) return "Cat B";
else return "Mouse C";
}
설명
Cat A와 Mouse C 사이의 거리를 저장하는 dA, Cat B와 Mouse C 사이의 거리를 저장하는 dB 변수를 선언한다.
각각 거리를 계산하여 변수에 저장한다.
이 때, 절대값을 구해야 하므로 둘의 차가 양수가 되도록 큰 수에서 작은 수를 뺀 값을 저장한다.
그 다음 dA와 dB를 비교하여 거리가 더 작은 쪽을 문자열로 리턴하고, 둘의 차가 0이면 Mouse C를 리턴한다.
728x90