[기본수학1] 큰 수 A+B

2021. 2. 26. 00:41백준

 

10757번: 큰 수 A+B

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

파이썬에서는 그냥 a+b를 바로 출력해도 정답처리가 되더라;;

어쨌든 의도는 그게 아닌 것 같아서 구현했다.

 

그냥 A+B 했을 때 72ms 정도 소요됐는데 직접 구현한 건 92ms라... 비슷하게 걸린 것 같은데 최적화하면?

 

제출 코드

a_input, b_input = list(map(str, input().split(" ")))

a = list(a_input)
b = list(b_input)


len_max = max([len(a), len(b)])
len_min = min([len(a), len(b)])
len_diff = len_max - len_min

if len_max == len(b):
    for i in range(0, len_diff):
        a.insert(0, "0")
else:
    for i in range(0, len_diff):
        b.insert(0, "0")

a = "".join(a)
b = "".join(b)

sum_list = []
upper = False

for i in range(len_max - 1, -1, -1):
    a_b_sum = int(a[i]) + int(b[i])
    if upper:
        a_b_sum = a_b_sum + 1

    if a_b_sum >= 10:
        upper = True
        a_b_sum = a_b_sum % 10
    else:
        upper = False

    sum_list.insert(0, str(a_b_sum))

if upper:
    sum_list.insert(0, str(1))

print("".join(sum_list))