티스토리 뷰

문제

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

입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다.

각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력

각 테스트 케이스마다 A+B를 출력한다.

예제 입력

5
1 1
2 3
3 4
9 8
5 2

예제 출력

2
5
7
17
7

해설

사실 이 문제의 중심 로직은 간단해서 따로 포스팅하지 않아도 될 정도다. 횟수를 받아서 for 문의 반복 횟수를 제어할 수 있으면 그만이다. 그런데 이렇게 따로 포스팅을 하게 된 이유는 내 자신이 이 문제에서 미궁에 빠져 버리고 말았기 때문이다. 과연 이 문제의 출력 형식을 맞추는 게 초급 과정의 문제인가 하는 부분 때문이었다. 내가 이해한 바로는 테스트 횟수를 입력받고 그 횟수만큰 연산할 수들을 입력받는다. 그 후에 일괄해서 연산값을 출력해야 한다. 이런 출력을 위해서는 연산할 수를 저장할 메모리를 할당해야 한다. 이 경우에는 int형 배열을 선언해 주어야 할 것이다. 그런데 테스트 횟수를 사용자에게 입력받으므로 이 메모리의 길이가 동적으로 결정되어야 한다. 즉 malloc() 함수를 써야 하는 문제가 된다. 구현 방법은 있지만 이게 초급자들에게 해당될 방법인가 하는 문제 때문에 고민에 빠지고 말았다. 혹시 이 방법 외에 초급자들이 간단하게 할 수 있는 방법이 있는데 내가 아직 모르고 있었던 것일까? c 초급 문법도 제대로 떼지 못한 것인가! 아닐 거 같은데… 아닐 거 같은데… * 무한. 이런 자괴감에서 휩싸이기 직전 우선 입출력 코드라도 완성해 놓을 요량으로 입력 후 바로 출력이 이루어지도록 코드를 짜서 제출을 했다. 그런데 이럴 수가! 맞았습니다!!가 뜨는 것이다. 내 고민과 자괴감의 보상은 어디에서 찾아야 하는 것일까. 허무함에 서둘러 포스팅을 마친다.

소스 코드: c

#include <stdio.h>

int main()
{
    int times;
    int i;
    int first_num, second_num;
    scanf("%d", &times);

    for (i = 0; i < times; i++)
    {
        scanf("%d %d", &first_num, &second_num);
        printf("%d\n", first_num + second_num);
    }

    return 0;
}

소스 코드: python

times = int(input())

for i in range(0, times):
    first_num, sec_num = map(int, input().split())
    print(first_num + sec_num)

파이썬에서 for 문의 사용법은 c와 조금 다르다는 점을 놓치지 말자. 일정한 횟수를 반복하기 위해서 시작값과 끝값을 range()를 이용하고 있다.


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함
11-25 22:18