DevLog:-)

[알고리즘][파이썬]1969-DNA 본문

알고리즘/백준

[알고리즘][파이썬]1969-DNA

hyeon200 2023. 6. 15. 00:38
반응형

 

문제

코드

import sys

N,M = map(int,sys.stdin.readline().strip().split())
arr = []
for i in range(N):
    arr.append(list(map(str,sys.stdin.readline().strip())))
    

answer=''
sum =0
for i in range(M):
    map ={"A":0, "C":0,"G":0 ,"T":0}
    for j in range(N):
        map[arr[j][i]] +=1
    m = max(map,key=map.get)
    answer+=m
    sum += (N- map[m])
    map.clear

print(answer)
print(sum)

#answer=[](append)와 answer=""(+=)의 차이

 

코멘트

문제를 한 번에 이해하기 어려려웠지만 구현은 비교적 간단한 문제인 거 같다.

결과적으로 주어진 문자열과 가장 닮은 문자열을 구해 출력하면 되는 문제이다.

 

예를 들어 다음과 같이 입력이 주어질 때 

4 4

TAGA

TGGA

GCAC

TCGG

DNA->TCGA 각 인덱스에서 가장 많이 나온 문자를 합친 문자열!

Hamming Distance->1212 각 인덱스에서 가장 많이 나온 문자를 제외한 문자의 수!

 

TAGC각각의 변수를 선언해도 되지만 더 간단한 구현을 위해 딕셔너리를 이욯하여 코드를 작성했다. 

 

 

반응형