처음에 이 문제가 실버4라고..? 문제가 생각보다 까다롭다. Counter를 사용해야 겠다고 가장 먼저 떠올렸다야 겠다고 가장 먼저 떠올렸다. 파이썬의 collections 모듈의 Counter를 사용하면 쉽게 풀이가 가능하다. 이 모듈은 딕셔너리의 메서드를 제공하며, most_common() 함수는 개수(키의 개수)가 많은 순서대로 배열로 반환해준다. 자세한 사용방법은 다음 블로그를 참고하자. DALE 님의 블로그인데, 여러 프로그래밍 분야의 유용한 글들이 많다.
from collections import Counter
import sys
input=sys.stdin.readline
n,m=map(int,input().rstrip().split())
arr=[list(input().rstrip()) for _ in range(n)]
ans=''
hd=0
for j in range(m):
tmp=[]
for i in range(n):
tmp.append(arr[i][j])
l=len(tmp)
# 개수가 큰 순서대로 배열로 반환
# 예시 1) [('A', 5), ('T', 1)]
# 예시 2) [('A', 1), ('C', 1), ('G', 1), ('T', 1)]
c=Counter(tmp).most_common()
# 정렬기준: 개수순, 뉴클레오티드 사전순
c.sort(key=lambda x:(-x[1],x[0]))
hd+=l-c[0][1]
ans+=c[0][0]
print(ans)
print(hd)