BOJ - 1969

주의·2024년 1월 15일
0

boj

목록 보기
77/214

백준 문제 링크
DNA

❓접근법

  1. DNA 정보를 리스트 변수 data에 넣어준다.
  2. 이제 각 열을 기준으로 DNA 정보를 살펴볼 것인데,
    아래를 참고하면 좋다.
  3. 해당하는 열에서 가장 많이 등장한 DNA를 word에 저장할 것이다.
  4. 만약 'A','C','G','T'가 등장한 횟수가 모두 같다면,
    사전 순으로 정렬하여 해당하는 DNA를 word에 저장할 것이다.
  5. 마지막으로, word가 완성되었다면,
    word를 data의 단어들과 비교하여 다른 DNA가 있다면
    answer += 1 하고, answer를 출력하면 끝!

👌🏻코드

N,M = map(int, input().split())

data = []
for _ in range(N):
    data.append(list(input()))
    
    
word = ''

for j in range(M):
    dic = {'A' : 0, 'T' : 0, 'G' : 0, 'C' : 0}
    
    for i in range(N):
        if data[i][j] in dic:
            dic[data[i][j]] += 1
            
    sorted_dic = sorted(dic.items(), key=lambda x: (-x[1], x[0]))
    word += sorted_dic[0][0]
    
    
answer = 0

for i in range(N):
    for j in range(M):
        if word[j] != data[i][j]:
            answer += 1
            
print(word)
print(answer)

0개의 댓글