풀이
그냥 완전탐색하면 된다
근데 그냥 하면 시간 초과가 난다
앞뒤에 anta tica를 제거하고 잘 돌려야 한다
코드
#include <bits/stdc++.h>
using namespace std;
int n, k, dap, a[55];
char s[55];
int main() {
scanf("%d %d", &n, &k);
for (int i = 0; i < n; i++) {
scanf("%s", s);
for (int j = 0; s[j]; j++) a[i] |= (1<<(s[j]-'a'));
}
int x = (1<<0)|(1<<2)|(1<<8)|(1<<13)|(1<<19);
for (int i = x; i < (1<<26); i++) {
if (__builtin_popcount(i|=x) != k) continue;
int cnt = 0;
for (int j = 0; j < n; j++) cnt += ((i&a[j])==a[j]);
dap = max(dap, cnt);
}
printf("%d\n", dap);
return 0;
}
아무말
백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이