반응형
SOLUTION
import sys
# 각 숫자에서 빈 전광판,0,1,2,3,4,5,6,7,8,9 로 바뀔 때 눌러야하는 스위치 횟수 dictionary 형태로 저장
# 마지막 ' ' 는 빈 전광판 에서 숫자로 바뀔 때 눌러야하는 스위치 횟수
num = {
'0' : ['6','0','4','3','3','4','3','2','2','1','2'], '1' : ['2','4','0','5','3','2','5','6','2','5','4'], '2' : ['5','3','5','0','2','5','4','3','5','2','3'],
'3' : ['5','3','3','2','0','3','2','3','3','2','1'], '4' : ['4','4','2','5','3','0','3','4','2','3','2'], '5' : ['5','3','5','4','2','3','0','1','3','2','1'],
'6' : ['6','2','6','3','3','4','1','0','4','1','2'], '7' : ['4','2','2','5','3','2','3','4','0','3','2'], '8' : ['7','1','5','2','2','3','2','1','3','0','1'],
'9' : ['6','2','4','3','1','2','1','2','2','1','0'], ' ' : ['6','2','5','5','4','5','6','4','7','6']
}
T = int(sys.stdin.readline())
for _ in range(T):
A, B = sys.stdin.readline().rstrip().split()
answer = 0
if len(A) == len(B): # A,B 의 길이가 서로 같다면 앞에 빈 전광판은 무시해도 되므로 바로 리스트화 시킨다
A_list = list(A)
B_list = list(B)
# A, B가 각각 문자열 길이가 5 이면 그대로 리스트화 , 5보다 작다면 오른쪽 정렬시키고 나머지는 빈 전광판과 같은 여백으로 채운다
else:
if len(A) < 5:
A_list = list(A.rjust(5, ' '))
elif len(A) == 5:
A_list = list(A)
if len(B) < 5:
B_list = list(B.rjust(5, ' '))
elif len(B) == 5:
B_list = list(B)
for i, j in zip(A_list, B_list): # zip() 함수를 이용해 같은 위치의 전광판 현황을 비교한다
if i == " " and j == " ": # 둘다 빈공간이면 바꿀 게 없으므로 pass
pass
elif i == " " and j != " ": # i만 여백이고 j는 여백이 아니면 key에 해당하는 value값을 int형태로 answer에 더해준다
answer += int(num[i][int(j)])
elif i != " " and j == " ": # i가 여백이 아니고 j만 여벡이면 key에 해당하는 첫번째 value 값을 answer에 더해준다
answer += int(num[i][0]) # 각각의 key에 해당하는 0번째 index는 빈 전광판으로 바꿔주는 횟수이기 때문이다.
else: # 둘다 여백이 아니라면 key에 해당하는 j+1 번째 value 값을 int형태로 answer에 더해준다 / j+1 번째 인 이유는 첫번째가 빈 전광판으로 바꿔주는 횟수이기 떄문
answer += int(num[i][int(j)+1])
print(answer)
각 숫자에서 요구하는 숫자로 전광판이 바뀔 때 눌러야하는 스위치 횟수를 dictionary 형태로
미리 저장시키는 방법으로 문제를 해결했다.
'코딩테스트 대비 > Softeer' 카테고리의 다른 글
[Softeer/Python] 택배 마스터 광우 ★★★☆☆ - 효과는 굉장했다! (0) | 2021.11.17 |
---|---|
[Softeer/Python] [21년 재직자 대회 예선] 회의실 예약 ★★☆☆☆ - 효과는 굉장했다! (0) | 2021.11.15 |
[Softeer/Python] [21년 재직자 대회 예선] 비밀메뉴 ★★☆☆☆ - 효과는 굉장했다! (0) | 2021.11.09 |
[Softeer/Python] 금고털이 ★★☆☆☆ - 효과는 굉장했다! (0) | 2021.11.09 |
[Softeer/Python] 바이러스 ★★☆☆☆ - 효과는 굉장했다! (0) | 2021.11.09 |