본문 바로가기

컴퓨터/백준 알고리즘

백준 알고리즘 15552번: 빠른 A+B [C++]

문제 출처: www.acmicpc.net/problem/15552

 

15552번: 빠른 A+B

첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.

www.acmicpc.net

 

1. 코드

(실행)

 

2. 풀이

cin.tie(NULL);

메인 함수에 처음에 이것을 선언하는데 이것은 cin과 cout의 묶을 풀어주는 구문이라고 한다. cin으로 데이터를 읽을 때 출력 버퍼에 있는 내용을 비우는데 비우지 않고 먼저 입력을 받는다.

ios::sync_with_stdio(false);

이 구문은 C와 C++의 버퍼를 분리하는 역할을 한다고 한다.

int T;
cin >> T;

그다음에 테스트 케이스의 수를 입력을 한다.

for (int i = 0; i < T; i++)
{
    int A, B;
    cin >> A >> B;
    cout << A + B << '\n';
}

그리고 반복문을 이용하여 테스트 케이스의 수만큼 A와 B를 입력받으며 A + B의 값을 출력하는데 endl 대신 '\n'을 사용한다. 그 이유는 endl은 개행 작업도 하지만 cin처럼 출력 버퍼를 비우는 작업도 한다. 그렇기에 그저 개행 작업만 하는 '\n'을 사용하여 시간을 단축시킨다.

return 0;

그리고 종료하면 끝이다.

 

3. 느낀 점

cin.tie(NULL);과 ios::sync_with_stdio(false);에 대해서 오늘처럼 알아서 급하게 찾아보기는 했지만 cin과 버퍼에 대해서 이해가 미숙해서 다른 글에 대한 내용을 참고를 했다. 꾸준히 공부해야겠다.

참고한 글: www.acmicpc.net/board/view/22716

 

글 읽기 - 추가 설명 및 다른 언어 빠른 입출력 방법

댓글을 작성하려면 로그인해야 합니다.

www.acmicpc.net