-
Cats and a Mouse해커랭크(HackerRank) 2018. 8. 19. 17:33반응형
1. 문제
2. 알고리즘
키워드 - 구현, 그리디
* 문제 풀이
- 두마리의 고양이가 쥐에게 접근하는 거리가 같다면 쥐는 도망 갈 수 있다.
- 두마리의 고양이가 쥐에게 접근하는 거리가 다르다면 짧은 거리로 이동하는 고양이가 승리 한다.
3. 코드
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788#include <bits/stdc++.h>using namespace std;vector<string> split_string(string);/** Complete the catAndMouse function below.*/string catAndMouse(int x, int y, int z) {/** Write your code here.*/int equalX = abs(z - x);int equalY = abs(z - y);if(equalX == equalY) {return "Mouse C";}if(equalX > equalY) {return "Cat B";} else {return "Cat A";}}int main(){ofstream fout(getenv("OUTPUT_PATH"));int q;cin >> q;cin.ignore(numeric_limits<streamsize>::max(), '\n');for (int q_itr = 0; q_itr < q; q_itr++) {string xyz_temp;getline(cin, xyz_temp);vector<string> xyz = split_string(xyz_temp);int x = stoi(xyz[0]);int y = stoi(xyz[1]);int z = stoi(xyz[2]);string result = catAndMouse(x, y, z);fout << result << "\n";}fout.close();return 0;}vector<string> split_string(string input_string) {string::iterator new_end = unique(input_string.begin(), input_string.end(), [] (const char &x, const char &y) {return x == y and x == ' ';});input_string.erase(new_end, input_string.end());while (input_string[input_string.length() - 1] == ' ') {input_string.pop_back();}vector<string> splits;char delimiter = ' ';size_t i = 0;size_t pos = input_string.find(delimiter);while (pos != string::npos) {splits.push_back(input_string.substr(i, pos - i));i = pos + 1;pos = input_string.find(delimiter, i);}splits.push_back(input_string.substr(i, min(pos, input_string.length()) - i + 1));return splits;}cs 반응형'해커랭크(HackerRank)' 카테고리의 다른 글
Bon Appétit (0) 2018.08.19 Sock Merchant (0) 2018.08.19 Picking Numbers (0) 2018.08.19 Designer PDF Viewer (0) 2018.08.19 Utopian Tree (0) 2018.08.19