티스토리 뷰

출처 :  https://www.hackerrank.com/challenges/non-divisible-subset/problem


#include <bits/stdc++.h>


using namespace std;


vector<string> split_string(string);

int check[100];


int nonDivisibleSubset(int k, vector<int> S) {

int ans = 0; memset(check, 0, sizeof(check));

for (int i = 0; i < S.size(); i++) {

S[i] %= k; check[S[i]]++;

}

int tmp = k / 2; int i = tmp; int j = tmp + 1;

if (check[0]) ans++;

if (!(k % 2)) {

if (check[tmp]) ans++;

i--;

}

for (i,j; i >= 1; i--, j++) {

int z = min(check[i], check[j]);

ans += (check[i] + check[j] - (z * 2) + z);

}

return ans;

}


int main()

{

ofstream fout(getenv("OUTPUT_PATH"));


string nk_temp;

getline(cin, nk_temp);


vector<string> nk = split_string(nk_temp);


int n = stoi(nk[0]);


int k = stoi(nk[1]);


string S_temp_temp;

getline(cin, S_temp_temp);


vector<string> S_temp = split_string(S_temp_temp);


vector<int> S(n);


for (int i = 0; i < n; i++) {

int S_item = stoi(S_temp[i]);


S[i] = S_item;

}


int result = nonDivisibleSubset(k, S);


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;

}



'알고리즘 > 기타' 카테고리의 다른 글

[HackerRank] Queen's Attack II  (0) 2018.09.30
[HackerRank] Encryption  (0) 2018.09.30
[HackerRank] Forming a Magic Square  (0) 2018.09.30
[HackerRank] Extra Long Factorials  (0) 2018.09.28
[HackerRank] Climbing the Leaderboard  (0) 2018.09.28
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함