-
백준 20164 홀수 홀릭 호석PS 2021. 4. 8. 02:14
<코드>
#include <iostream> #include <algorithm> #include <string> using namespace std; #define INF 987654321 int n; int big = -INF; int small = INF; int counting(string str) { int cnt = 0; for(int i = 0; i < str.size(); i++) { int num = str[i] - '0'; if (num % 2 == 1) { cnt++; } } return cnt; } string divideAndAdd(int p, int q, string str) { string a = ""; string b = ""; string c = ""; int A, B, C; for (int i = 0; i < p; i++) { a += str[i]; } for (int i = p; i < q; i++) { b += str[i]; } for (int i = q; i < str.size(); i++) { c += str[i]; } int tmp = stoi(a) + stoi(b) + stoi(c); return to_string(tmp); } void retCnt(string str, int sum) { if (str.size() == 1) { big = max(big, sum); small = min(small, sum); } if (str.size() == 2) { string str2 = ""; int tres; str2 = to_string((str[0] - '0') + (str[1] - '0')); tres = counting(str2); retCnt(str2, sum + tres); } else { for (int i = 1; i < str.size()-1; i++) { for (int j = i+1; j < str.size(); j++) { string str2 = ""; int tres; str2 = divideAndAdd(i, j, str); tres = counting(str2); retCnt(str2, sum + tres); } } } } int main() { cin >> n; int k = counting(to_string(n)); retCnt(to_string(n), 0); cout << small + k << ' ' << big + k << '\n'; return 0; }
반응형'PS' 카테고리의 다른 글
백준 5904번 Moo게임 (0) 2021.04.08 백준 10830번 행렬 제곱 (0) 2021.04.08 백준 1780번 종이의 개수 (0) 2021.04.08 백준 13171 A (0) 2021.04.06 백준 17478 재귀함수가 뭔가요? (0) 2021.04.06