DINGA DINGA
article thumbnail
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

'C & C++ > HackerRank' 카테고리의 다른 글

[HackerRank] Insert a Node at the Tail of a Linked List  (0) 2021.07.16
[HackerRank] Grading Students  (0) 2021.07.16
[HackerRank] Divisible Sum Pairs  (0) 2021.07.09
[HackerRank] Find the Median  (0) 2021.06.25
[HackerRank] Ice Cream Parlor  (0) 2021.06.25