해커랭크(HackerRank)
Birthday Cake Candles
cepiloth
2018. 8. 19. 17:42
반응형
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 84 85 86 87 88 | #include <bits/stdc++.h> using namespace std; vector<string> split_string(string); /* * Complete the birthdayCakeCandles function below. */ int birthdayCakeCandles(int n, vector<int> ar) { /* * Write your code here. */ int high = 0; int count = 0; for(int i =0; i<n; i++) { int cand = ar[i]; if(cand > high) { high = cand; count = 1; } else if(high == cand) { count++; } } return count; } int main() { ofstream fout(getenv("OUTPUT_PATH")); int n; cin >> n; cin.ignore(numeric_limits<streamsize>::max(), '\n'); string ar_temp_temp; getline(cin, ar_temp_temp); vector<string> ar_temp = split_string(ar_temp_temp); vector<int> ar(n); for (int ar_itr = 0; ar_itr < n; ar_itr++) { int ar_item = stoi(ar_temp[ar_itr]); ar[ar_itr] = ar_item; } int result = birthdayCakeCandles(n, ar); 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 |
반응형