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()
으로 써줘도 된다.
#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++만의 독립적인 버퍼를 사용 가능하게 해주고, 실행 속도가 빨라지게 된다. 그러나 여기서 cin
과 scanf, getchar
등을 사용하면 안되고, cout
과 printf, putchar
등을 사용하면 안된다. 결과가 이상해질 수 있다.