[백준 1969 파이썬] DNA

일단 해볼게·2022년 10월 20일
0

백준

목록 보기
30/132

https://www.acmicpc.net/problem/1969

문제 이해하다가 시간이 오래 걸려서 검색을 통해 이해했다.

# DNA

N, M = map(int, input().split())
DNA = [input() for _ in range(N)]
HM_small_DNA = '' 
HM_count = 0

for i in range(M):
    ACGT = [0, 0, 0, 0] 
    for j in range(N):
        if DNA[j][i] == 'A':
            ACGT[0] += 1
        elif DNA[j][i] == 'C':
            ACGT[1] += 1
        elif DNA[j][i] == 'G':
            ACGT[2] += 1
        elif DNA[j][i] == 'T':
            ACGT[3] += 1
    
    max_idx = ACGT.index(max(ACGT)) # 가장 많이 나온 문자 인덱스
    
    # max_idx 체크해서 결과, count 저장
    if max_idx == 0:
        HM_small_DNA += 'A'
    elif max_idx == 1:
        HM_small_DNA += 'C'
    elif max_idx == 2:
        HM_small_DNA += 'G'
    elif max_idx == 3:
        HM_small_DNA += 'T'

    HM_count += N - max(ACGT) # N - 가장 많이 나온 문자 수

print(HM_small_DNA)
print(HM_count)

참고
https://yuna0125.tistory.com/112

profile
시도하고 More Do하는 백엔드 개발자입니다.

0개의 댓글