전공/백준
2864
yha97
2022. 9. 25. 10:29
날짜 : 2022. 09. 25
사용 언어 : python
문제
코드
import sys
A, B = map(int, sys.stdin.readline().split())
a = dict()
b = dict()
mi = 0
ma = 0
cnt = 0
while (A > 0) or (B > 0): #자릿수 별로 저장
a[10**cnt] = A % 10
b[10**cnt] = B % 10
cnt += 1
A = A // 10
B = B // 10
#print(a)
#print(b)
for i in range(len(a.keys())):
if (a[10**i] == 6) and (b[10**i] == 6): # 둘 다 6일 때
mi += (5 * (10**i)) * 2
elif (a[10**i] == 6): # 하나만 6일 때
mi += (5 * (10**i)) + (b[10**i] * (10 ** i))
elif (b[10**i] == 6):
mi += (5 * (10**i)) + (a[10**i] * (10**i))
else: # 둘 다 아닐 때
mi += (a[10**i] + b[10**i]) * (10**i)
for i in range(len(a.keys())):
if (a[10**i] == 5) and (b[10**i] == 5):
ma += (6 * (10**i)) * 2
elif (a[10**i] == 5):
ma += (6 * (10**i)) + (b[10**i] * (10 ** i))
elif (b[10**i] == 5):
ma += (6 * (10**i)) + (a[10**i] * (10**i))
else:
ma += (a[10**i] + b[10**i]) * (10**i)
print("%d %d"%(mi, ma))
알게된 점
- 딕셔너리를 생성 후 자릿수별로 숫자를 저장했다.
- 따로 carry를 저장할 필요는 없었다.
- 확실히 파이썬이 **연산자나 딕셔너리가 있어서 편한 듯 하다.
참고 사이트
-