1번: 내가 작성한 코드 (큐 활용)
import string
alpha_list = list(string.ascii_uppercase)
count_list = [3,2,1,2,4,3,1,3,1,1,3,1,3,2,1,2,2,2,1,2,1,1,1,2,2,1]
alpha_count = dict()
x = 0
for alpha in alpha_list:
alpha_count[alpha] = count_list[x]
x += 1
N, M = map(int, input().split())
A, B = map(str, input().split())
i, j = 0, 0
C = []
while i<=len(A) or j <= len(B):
if i<len(A):
C.append(alpha_count[A[i]])
if j<len(B):
C.append(alpha_count[B[j]])
i += 1
j += 1
while len(C) > 2:
c1 = C.pop(0)
for x in range(len(C)):
c2 = C.pop(0)
C.append((c1+c2)%10)
c1 = c2
print("%s%%" % str(C[0]*10+C[1]))
2번: 1번 성공 후 참고한 코드
N, M = map(int, input().split())
A, B = input().split()
alp = [3,2,1,2,4,3,1,3,1,1,3,1,3,2,1,2,2,2,1,2,1,1,1,2,2,1]
AB = ''
min_len = min(N,M)
for i in range(min_len):
AB += A[i] + B[i]
AB += A[min_len:] + B[min_len:]
lst = [alp[ord(i)-ord('A')] for i in AB]
for i in range(N+M-2):
for j in range(N+M-1-i):
lst[j] += lst[j+1]
print("{}%".format(lst[0]%10*10+lst[1]%10))
3번: 배운 점
- ord 함수 지혜롭게 이용
- 리스트 컴프리헨션을 사용해 코드 깔끔히 작성 가능
- print문에서 "{}%".format() 이용하니 가독성이 좋다
'> 알고리즘 문제 풀이 > BOJ' 카테고리의 다른 글
*2110-공유기 설치 (python, 파이썬) (0) | 2020.10.15 |
---|---|
17389-보너스 점수 (python, 파이썬) (0) | 2020.10.14 |
10539-수빈이와 수열 (python, 파이썬) (0) | 2020.10.14 |
15969-행복 (python, 파이썬) (0) | 2020.10.14 |
1236-성 지키기 (python, 파이썬) (0) | 2020.10.14 |
댓글