#include <stdio.h> #include <iostream> #include <algorithm> #include <string> #include <map> using namespace std; int N, K; string word[55]; int alphabet[26]; int Max; int count() { int wordCnt = 0; for(int i = 1; i <= N; i++) { bool flag = true; for(int j = 0; j < word[i].size(); j++) { if(alphabet[word[i][j]-'a'] == 0) { flag = false; break; } } if(flag == true) { wordCnt++; } } return wordCnt; } void combination(int idx, int cnt) { if(cnt == K-5) { Max = max(Max, count()); return; } for(int i = idx; i < 26; i++) { if(alphabet[i] == 1) { continue; } alphabet[i] = 1; combination(i+1, cnt+1); alphabet[i] = 0; } } int main(void) { // freopen("B1062_input.txt", "r", stdin); cin >> N >> K; if(K <= 4) { for(int i = 1; i <= N; i++) { cin >> word[i]; } cout << "0"; } else { alphabet['a'-'a'] = 1; alphabet['c'-'a'] = 1; alphabet['i'-'a'] = 1; alphabet['n'-'a'] = 1; alphabet['t'-'a'] = 1; for(int i = 1; i <= N; i++) { cin >> word[i]; } combination(0, 0); cout << Max; } return 0; } | cs |
'Baekjoon > BruteForce' 카테고리의 다른 글
[백준 14889] 스타트와 링크 (조합) (C/C++) (0) | 2020.04.09 |
---|---|
[백준 1018] 체스판 다시 칠하기 (Brute Force) (C/C++) (0) | 2020.03.24 |
[백준 1251] 단어 나누기 (조합) (C/C++) (★) (0) | 2020.03.23 |
[백준 1041] 주사위 (조합) (C/C++) (0) | 2019.12.18 |
[백준 15683] 감시 (순열) (C/C++) (★★★) (1) | 2019.11.21 |