알고리즘
[백준] 10757번 :큰 수 A+B - Python 파이썬
헌치
2021. 8. 23. 21:51
[백준] 10757번 :큰 수 A+B - Python 파이썬
알고리즘 분류:
링크: https://www.acmicpc.net/problem/10757
10757번: 큰 수 A+B
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. (0 < A,B < 1010000)
출력
첫째 줄에 A+B를 출력한다.
제출한 답
import sys
a,b = sys.stdin.readline().rstrip().split()
print(int(a)+int(b))
파이썬의 경우 int의 범위에 상관없이 큰 수 출력이 가능하지만
c언어 등 다른 언어에서는 범위 문제로 일반적인 덧셈 기능을 활용할 수 없다.
이런 부분을 생각해서 정수의 범위에 관계없이 덧셈이 가능한 답을 제출했다.
import sys
a,b = sys.stdin.readline().rstrip().split()
#1)두 수의 자릿수 맞추기
if len(a) < len(b):
a = (len(b)-len(a))*"0" + a
elif len(a) > len(b):
b = (len(a)-len(b))*"0" + b
length = len(a)
r = [0 for __ in range(length)]
for i in range(length-1,-1,-1):
sum = r[i] + int(a[i]) + int(b[i])
if sum < 10:#자릿수 안 오를 때
#2) r 배열 안에 각 자릿수 별로 덧셈하기
r[i] = sum
else:#자릿수 오를 때
r[i] = sum - 10
# 3) 자리 수 체인지
if i != 0:#맨 끝 수 아니면
r[i-1] += 1
else: # 끝 수
r = [1] + r
print("".join(map(str,r)))
#1)두 수의 자릿수 맞추기
#2) r 배열 안에 각 자릿수 별로 덧셈하기
#3) 자리 수 체인지