본문 바로가기
Algorithm Trainning/백준 알고리즘(BEAKJOON)

백준 : 10757번, 큰 수 A+B

by newbie22 2021. 7. 26.

문제 주소 : https://www.acmicpc.net/problem/10757

정답 비율 : 48.601% (2021.07.26 23:22 기준)

 

10757번: 큰 수 A+B

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

www.acmicpc.net

 

문제 풀이 :

약간의 고전 문제(?)입니다.

 

C언어에서는 숫자로 입력 받을 수 없는 수가 주어집니다.

따라서 해당 숫자를 문자열로 입력받은 후에 직접 더하기를 구현해야 합니다.

 

코드는 다음과 같습니다.

 

C99

#include <stdio.h>
#include <string.h>

#define MAX 10001

char a[MAX];
char b[MAX];
char s[MAX + 1];

int main(void) {
	scanf("%s %s", a, b);

	int a_len = strlen(a), b_len = strlen(b), s_idx = -1;

	for (int i = 0; i < (b_len > a_len ? b_len : a_len); i++) {
		char nowA = a_len > i ? a[a_len - 1 - i] - 48 : 0;
		char nowB = b_len > i ? b[b_len - 1 - i] - 48 : 0;

		s[MAX - 1 - i] += (s[MAX - i] + nowA + nowB) / 10;
		s[MAX - i] = (s[MAX - i] + nowA + nowB) % 10;
	}

	while (s[++s_idx] == 0);

	for (; s_idx < MAX + 1; s_idx++) {
		printf("%d", s[s_idx]);
	}

	return 0;
}

 

Python3

print(sum(map(int, input().split())))

 

-> 파이썬이 참 편리하다는 것을 다시금 느낄 수 있었습니다.