해커랭크(HackerRank)
Arrays - DS
cepiloth
2018. 8. 19. 17:27
반응형
1. 문제
2. 알고리즘
키워드 - 배열, 정렬
3. 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | #include <bits/stdc++.h> using namespace std; vector<string> split_string(string); /* * Complete the reverseArray function below. */ vector<int> reverseArray(vector<int> a) { /* * Write your code here. */ reverse(a.begin(), a.end()); return a; } int main() { ofstream fout(getenv("OUTPUT_PATH")); int arr_count; cin >> arr_count; cin.ignore(numeric_limits<streamsize>::max(), '\n'); string arr_temp_temp; getline(cin, arr_temp_temp); vector<string> arr_temp = split_string(arr_temp_temp); vector<int> arr(arr_count); for (int arr_itr = 0; arr_itr < arr_count; arr_itr++) { int arr_item = stoi(arr_temp[arr_itr]); arr[arr_itr] = arr_item; } vector<int> res = reverseArray(arr); for (int res_itr = 0; res_itr < res.size(); res_itr++) { fout << res[res_itr]; if (res_itr != res.size() - 1) { fout << " "; } } fout << "\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 |
반응형