https://www.hackerrank.com/challenges/cats-and-a-mouse/problem
두 마리의 고양이와 한 마리의 쥐가 있다. 위치를 계산해 쥐를 더 빨리 잡을 수 있는 고양이를 출력한다. 거리가 같으면
고양이들이 싸우느라 쥐가 도망가므로 Mouse C를 출력한다.
x = Cat A, y = Cat B, z = Mouse C
char* catAndMouse(int x, int y, int z) {
char *str = (char*)malloc(10);
int a = x-z, b = y-z;
if(a<0) a = -a;
if(b<0) b = -b;
if(a==b) str = "Mouse C";
if(a > b) str = "Cat B";
if(a < b) str = "Cat A";
return str;
}
고양이와 쥐 사이의 거리가 중요하므로 Cat A와 Mouse C 사이의 거리를 a, Cat B와 Mouse C 사이의 거리를 b라는 변수에 담고 음수일 경우 양수로 바꿔줬다. str에 a==b이면 Mouse C, a>b이면 Cat B, a<b이면 Cat A를 넣는다. str을 반환한다.
처음에 Mouse C가 출력되는 경우가 Cat A < Mouse C < Cat B 순서만 있는 줄 알았는데 Cat A와 Cat B가 같은 위치에있는 경우도 존재하나 보다. 테스트케이스를 통과하지 못해 그냥 a==b로 바꿨다.
'HackerRank > Algorithms' 카테고리의 다른 글
[HackerRank] Implementation > Counting Valleys (0) | 2021.11.07 |
---|---|
[HackerRank] Implementation > Electronics Shop (0) | 2021.10.10 |
[HackerRank] Implementation > Bill Division (0) | 2021.09.26 |
[HackerRank] Warmup > A Very Big Sum (0) | 2021.09.26 |
[HackerRank] Implementation > The Hurdle Race (0) | 2021.09.19 |