티스토리 뷰
1. 문제 내용
2. 접근 방식
- 각 DNA 자릿수마다 가장 많이 사용된 뉴클레오티드를 조합하면, Hamming Distance가 가장 작다.
각 DNA에 자릿수마다 가장 많이 사용된 뉴클레오티드를 찾기 위해선 가장 먼저 위 그림과 같이 ACGT의 분포도를 확인해야 한다. 이중 최대값을 확인한 후, 최대값을 가진 뉴클레오티드를 제외한 나머지 뉴클레오티드의 개수를 COUNT하면 Hamming Distance를 구할 수 있다.
3. 정답 코드
n, m = map(int, input().split())
data = [input() for _ in range(n)]
result = ''
count = 0
for i in range(m):
dna = ['A', 'C', 'G', 'T']
cnt = [0, 0, 0, 0]
for d in data:
cnt[dna.index(d[i])] += 1
index = cnt.index(max(cnt))
result += dna[index]
count += sum(cnt) - max(cnt)
print(result)
print(count)
728x90
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준] 11508번 2 + 1 세일 파이썬 정답 코드 (0) | 2023.06.05 |
---|---|
[백준] 1049번 기타줄 파이썬 정답 코드 (0) | 2023.06.04 |
[백준] 2847번 게임을 만든 동준이 파이썬 정답 코드 (0) | 2023.06.04 |
[백준] 1026번 보물 파이썬 정답 코드 (0) | 2023.06.03 |
[백준] 4693번 섬의 개수 파이썬 정답 코드 (0) | 2023.06.02 |