-코드
def sol(c1, c2):
if c1 == 'A' and c2 == 'A':
return 'A'
if c1 == 'A' and c2 == 'G':
return 'C'
if c1 == 'A' and c2 == 'C':
return 'A'
if c1 == 'A' and c2 == 'T':
return 'G'
if c1 == 'G' and c2 == 'A':
return 'C'
if c1 == 'G' and c2 == 'G':
return 'G'
if c1 == 'G' and c2 == 'C':
return 'T'
if c1 == 'G' and c2 == 'T':
return 'A'
if c1 == 'C' and c2 == 'A':
return 'A'
if c1 == 'C' and c2 == 'G':
return 'T'
if c1 == 'C' and c2 == 'C':
return 'C'
if c1 == 'C' and c2 == 'T':
return 'G'
if c1 == 'T' and c2 == 'A':
return 'G'
if c1 == 'T' and c2 == 'G':
return 'A'
if c1 == 'T' and c2 == 'C':
return 'G'
if c1 == 'T' and c2 == 'T':
return 'T'
l = int(input())
s = input()
while 1:
l -= 1
a1 = s[l]
a2 = s[l - 1]
if l == 0:
break
else:
s = s[:-2]
s += sol(a1, a2)
print(s)
처음 코드가 위 코드였으나 시간 초과가 나서 readline도 넣어보고 했지만 다시 오류가 나서 while문도 사용했지만 해결이 되지 않았습니다. 그래서 찾아보니
def sol(c1, c2):
if c1 == 'A' and c2 == 'A':
return 'A'
if c1 == 'A' and c2 == 'G':
return 'C'
if c1 == 'A' and c2 == 'C':
return 'A'
if c1 == 'A' and c2 == 'T':
return 'G'
if c1 == 'G' and c2 == 'A':
return 'C'
if c1 == 'G' and c2 == 'G':
return 'G'
if c1 == 'G' and c2 == 'C':
return 'T'
if c1 == 'G' and c2 == 'T':
return 'A'
if c1 == 'C' and c2 == 'A':
return 'A'
if c1 == 'C' and c2 == 'G':
return 'T'
if c1 == 'C' and c2 == 'C':
return 'C'
if c1 == 'C' and c2 == 'T':
return 'G'
if c1 == 'T' and c2 == 'A':
return 'G'
if c1 == 'T' and c2 == 'G':
return 'A'
if c1 == 'T' and c2 == 'C':
return 'G'
if c1 == 'T' and c2 == 'T':
return 'T'
l = int(input())
s = list(map(str, input()))
i = 0
while i != l:
i += 1
r = sol(s[l-i], s[l-i-1])
if len(s) != 1:
s.pop()
s.pop()
s.append(r)
else:
break
print(s[0])
여러번 바꿔보고 찾아보니 이렇게 코딩을 하니 해결이 됐습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬] 2161번 카드1 (0) | 2021.12.21 |
---|---|
[백준/파이썬] 20044번 Project Teams (0) | 2021.12.20 |
[프로그래머스/파이썬] 제일 작은 수 제거하기 (0) | 2021.12.19 |
[프로그래머스/파이썬] 문자열을 정수로 바꾸기 (0) | 2021.12.19 |
[프로그래머스/파이썬] 짝수와 홀수 (0) | 2021.12.19 |