-
Plus Minus해커랭크(HackerRank) 2018. 8. 19. 17:45반응형
1. 문제
2. 알고리즘
키워드 - 구현
* 문제 풀이
입력 받은 자연수에서 음수, 양수, 0 의 숫자의 개수가 전체 입력 받은 원소의 크기를 분수로 표현하여 출력
-.- 영어 설명 그대로 풀면 됨
6
-4 3 -9 0 4 1
음수 : -4, -9 / 총 크기 : 2
양수 : 3, 4, 1 / 총 크기 : 3
0 : 0 / 총 크기 : 1
postive : 3/6 = 0.500000
negative : 2/6 = 0.33333
zero : 1/6 = 0.166667
3. 코드
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990#include <bits/stdc++.h>using namespace std;vector<string> split_string(string);/** Complete the plusMinus function below.*/void plusMinus(vector<int> arr) {/** Write your code here.*/int size = arr.size();int postive = 0;int negative = 0;int zero =0;for(int i=0; i<size; i++) {if(arr[i] == 0)zero++;else if(arr[i] > 0)postive++;else if(arr[i] < 0)negative++;}double p, n, z;p = (double)postive / size;n = (double)negative / size;z = (double)zero / size;cout.precision(6);cout << p << endl;cout << n << endl;cout << z << endl;}int main(){int n;cin >> n;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(n);for (int arr_itr = 0; arr_itr < n; arr_itr++) {int arr_item = stoi(arr_temp[arr_itr]);arr[arr_itr] = arr_item;}plusMinus(arr);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)' 카테고리의 다른 글
A Very Big Sum (0) 2018.08.19 Diagonal Difference (0) 2018.08.19 Staircase (0) 2018.08.19 Mini-Max Sum (0) 2018.08.19 Birthday Cake Candles (0) 2018.08.19