본문 바로가기

Algorithm

[백준 알고리즘] 1000번 최단길이 / 최소메모리로 풀기(파이썬, C++)

원본: https://www.acmicpc.net/problem/1000

 

1000번: A+B

문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A+B를 출력한다. 예제 입력 1 복사 1 2 예제 출력 1 복사 3 힌트 여기를 누르면 1000번 예제 소스를 볼 수 있습니다....

www.acmicpc.net

문제

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

입력

첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력

첫째 줄에 A+B를 출력한다.

 

1. Python 코드

1
2
a, b = map(int,input().split())
print (a+b)

A, B를 입력받는 input().split()의 결과는 문자열 리스트입니다. python의 map을 사용해서 정수로 변환해봅시다. 
리스트의 요소를 int로 변환, 결과는 맵 객체로 대입해주면 됩니다.

최단길이로 작성하기에는 파이썬 코드가 적합합니다. 결과를 보면  코드길이가 43Byte로 매우 짧지만, 단순한 작업인데도 메모리가 크다는 단점이 있어요. 그래서 저는 C 언어로 한번 작성해봤습니다.

 

2. C++ 코드

1
2
3
4
5
6
7
#include<stdio.h>
 
int main(){
    int a, b;
    scanf("%d%d",&a,&b);
    printf("%d",a+b);
}

C++언어로는 단순하게 A와 B를 scanf와 printf로 입출력해줬습니다. 이 코드를 visual studio로 실행해보고 싶으시다면 scanf 대신에 scanf_s로 변경 후에 실행해야 합니다. 이 오류에 대해 자세하게 다룬 게시글은 새로 올리도록 할게요.

 

이처럼 C++ 코드를 활용해 1000번 문제를 풀었을 때 메모리를 최대로 아낄 수 있어요. 저는 주로 C++로 풀이하곤 하는데, 가끔은 자신의 주 언어가 아닌 다른 언어로 문제를 풀어보는 것도 도움됩니다.