HackerRank/Algorithms

[HackerRank] Implementation > Cats and a Mouse

ruming 2021. 10. 4. 19:28

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로 바꿨다.