BOJ | 15552번

송치헌·2021년 6월 11일
0
post-thumbnail

Python 풀이

import sys

T = int(input())

for i in range(T):
    A, B = map(int, sys.stdin.readline().split()) 
    #평소에 쓰던 input() 쓰면 시간초과가 난다.
    print(A+B)

백준 알고리즘 풀이를 올리며 처음으로 import가 나왔다.
import는 파이썬 표준 라이브러리 모듈을 가져온다.
여러 라이브러리가 있지만 수학식을 쓸 때는 보통 numpy, cmath, math 를 많이 쓴다.
numpy는 행렬을 표현하기 좋고, cmath는 복소수, math는 실수를 표현할 때 주로 쓴다. 이번 문제에서는 sys모듈을 사용하였는데
sys는 인터프리터를 제어하는 모듈이다.
반복문에서 input()을 쓰게 되면 시간이 오래 걸린다. 그러나 sys.stdin.readline().split()으로 써주면 시간이 많이 줄어든다.
반복문 밖에서 변수 하나만 입력받을 땐 input()으로 써줘도 된다.

C++ 풀이

#include <iostream>

using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n, A, B;
    cin >> n;
    while (n--) {
    	cin >> A >> B;
    	cout << A + B << '\n';
    }
}

C++에서는

ios_base::sync_with_stdio(false);
cin.tie(NULL);

를 써주면 된다. C의 stdio와 C++의 iostream의 버퍼를 모두 사용하게 되면 실행 속도가 느려지게 되는데 ios_base::sync_with_stdio(false)를 해줌으로써 동기화를 비활성화 시켜준다. 따라서 C++만의 독립적인 버퍼를 사용 가능하게 해주고, 실행 속도가 빨라지게 된다. 그러나 여기서 cinscanf, getchar등을 사용하면 안되고, coutprintf, putchar등을 사용하면 안된다. 결과가 이상해질 수 있다.

profile
https://oraange.tistory.com/ 여기에도 많이 놀러와 주세요

0개의 댓글