링크 : https://www.acmicpc.net/problem/1969
예제입력 :
5 8
TATGATAC
TAAGCTAC
AAAGATCC
TGAGATAC
TAAGATGT
예제출력 :
TAAGATAC
7
첫째 줄 T T A T T
T4개, A1개 T출력 후 Hamming Distance +1
둘째 줄 A A A G A
A4개, G1개 A출력 후 Hamming Distance +1
...
예제입력 2
4 10
ACGTACGTAC
CCGTACGTAG
GCGTACGTAT
TCGTACGTAA
예제출력 2
ACGTACGTAA
6
...
마지막 줄 C G T A
갯수 다동일, 사전순 A 출력후 Hamming Distance +3
설계
ACGTACGTAC
CCGTACGTAG
GCGTACGTAT
TCGTACGTAA
2중포문을 돌려서 첫째 줄 A,C,G,T 을 비교
나온 Count 값이 큰 순서 + 사전 순으로 정렬, 출력
+) n크기 만큼의 정렬을 m번 수행
HamDistance 더하기
출력
import sys
n,m = map(int,sys.stdin.readline().split())
dnalist = [str(sys.stdin.readline().replace('\n','')) for i in range(n)]
dnadic = dict()
hamdistance = 0
for i in range(m):
for j in range(n):
if dnalist[j][i] not in dnadic:
dnadic[dnalist[j][i]] = 1
else:
dnadic[dnalist[j][i]] +=1
print(sorted(dnadic.items(),key=lambda x : (-x[1], x[0]))[0][0],end='')
hamdistance += n-max(dnadic.values())
dnadic.clear()
print()
print(hamdistance)
정렬함수 sorted 및 lambda사용법에 대해 알고 가기
sorted(dnadic.items(),key=lambda x : (-x[1], x[0]))
dnadic의 아이템들을 dnadic[1]의 값들의 역순으로 정렬한 후
x[0]의 값으로 사전순 정렬