[백준] 1672번 : DNA 해독 (파이썬)

뚝딱이 공학도·2022년 7월 17일
0

문제풀이_백준

목록 보기
156/160
post-thumbnail

문제



나의 답안

n=int(input())
s=list(input())

dna = {"AA" : "A", "AG" : "C", "AC" : "A", "AT" : "G", "GA" : "C","GG" : "G",
       "GC" : "T", "GT" : "A", "CA" : "A", "CG" : "T", "CC" : "C", "CT" : "G",
       "TA" : "G", "TG" : "A", "TC" : "G","TT" : "T"}

while True:
    if len(s)==1:
        break
    ss=s[-2]+s[-1]
    if ss in dna:
        del s[-2:]
        s.append(dna.get(ss))
print(*s)

접근 방법

  • 표의 내용을 딕셔너리로 선언해주고, 반복문을 통해 문자열의 길이가 1이 될 때까지 반복해준다.
  • 조건문을 통해 마지막의 두 문자열(ss)이 딕셔너리 안에 있으면 문자열에서 해당 내용을 삭제하고 딕셔너리의 get을 통해 해당 두 문자열에 해당하는 value값(dna.get(ss))을 가져온다.
  • 가져온 문자열을 s에 추가해준다.
  • 리스트 요소를 한번에 출력해주기 위해 *s를 사용해주었다.

0개의 댓글