

처음에 문제보고... 도대체 무슨소리인가 이해하는데 20분걸렸다. ㅎㅎ
풀이 1.
n, m = map(int, input().split())
arr = []
# DNA 입력
for i in range(n):
arr.append(list(map(str, input())))
result = ''
hamming_distance = 0
# DNA에 길이만큼 실행
for i in range(m):
# 각 DNA에 자리위치에 제일 많이 들어있는 글자 구하기
a, c, g, t = 0, 0, 0, 0
for j in range(n):
if arr[j][i] == 'T':
t += 1
elif arr[j][i] == 'A':
a += 1
elif arr[j][i] == 'G':
g += 1
elif arr[j][i] == 'C':
c += 1
# 제일 많이 들어간 글자
max_character_cnt = max(a, t, g, c) # 개수
if max_character_cnt == a:
result += 'A'
hamming_distance += (g + c + t)
elif max_character_cnt == c:
result += 'C'
hamming_distance += (g + a + t)
elif max_character_cnt == g:
result += 'G'
hamming_distance += (a + c + t)
elif max_character_cnt == t:
result += 'T'
hamming_distance += (g + c + a)
print(result)
print(hamming_distance)
풀이 2.
N, M = map(int, input().split())
dna = [input() for _ in range(N)]
cnt = 0
res = ""
for i in range(M):
t_dict = dict()
for j in range(N):
tmp = dna[j][i]
if tmp in t_dict:
t_dict[tmp] +=1
else:
t_dict[tmp] = 1
li = sorted(t_dict.items(),key=lambda x: (-x[1],x[0]))
res += li[0][0]
cnt += N-li[0][1]
print(res)
print(cnt)