풀이
음
사실 그리디인지는 잘 모르겠고
그냥 나이브하게 짜면 된다.
코드
#include <stdio.h>
int n, m, d, cnt[51][26];
char s[1001][51], r[1001];
int main() {
scanf("%d %d", &n, &m);
for (int i = 0; i < n; i++) {
scanf("%s", s[i]);
for (int j = 0; j < m; j++) cnt[j][s[i][j] - 'A']++;
}
for (int i = 0; i < m; i++) {
int mx = 0;
for (int j = 0; j < 26; j++)
if (cnt[i][j] > cnt[i][mx]) mx = j;
for (int j = 0; j < n; j++)
if (s[j][i] != mx + 'A') d++;
r[i] = mx + 'A';
}
printf("%s\n%d", r, d);
return 0;
}
아무말
백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이