728x90
https://www.hackerrank.com/challenges/cats-and-a-mouse/problem
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 |