4강 도전문제 3번

집중한 볼따구·2022년 9월 22일
0

혼.공.파 문제풀이

목록 보기
8/11

4강 도전문제 3번 p.269

Q 문제

코돈의 개수를 세는 프로그램을 만들어보세요
염기 서열은 일반적으로 3개씩 묶여서 하나의 의미를 나타냄
코돈 : 염기 3개가 묶여 있는 것

A 나의 풀이

lis = []
dic = {}
lis = input("암기 서열을 입력해주세요 : ")
if len(lis) % 3 == 0:
    for i in range(0, len(lis), 3):
        if lis[i]+lis[i+1]+lis[i+2] not in dic:
            dic[lis[i]+lis[i+1]+lis[i+2]] = 0
        dic[lis[i] + lis[i + 1] + lis[i + 2]] += 1

print(dic)

나의 풀이 결과


답지 풀이

for i in range(0,len(nucleos),3):
    #3글자씩 추출
    codon = nucleos[i:i+3]
    #3글자로 구성되는지 확인
    if len(codon) == 3:
        #딕셔너리에 키가 없을 경우 추가
        if codon not in counter:
            counter[codon] = 0
        counter[codon] += 1

print(counter)

코멘트

답지 풀이가 훨씬 깔끔하다는 게 보인다
변수 = 리스트범위
이렇게 리스트 요소를 추출해서 변수에 저장할 수 있는지 몰랐다
알아두면 유용할 거 같다
나의 풀이에선 처음부터 리스트의 길이가 3의 배수가 아니면 딕셔너리 자체에
아무런 값도 넣지 않게 되어있는데 문제의 의도는 그게 아니라
3의 배수가 되지못한 나머지를 잘라내고 몫은 그래도 출력하라는 뜻이다.

0개의 댓글