
예제 입력
백준 1000번 문제의 경우 입력이 다음과 같이 주어졌을 때
1 2
C++의 cin은 스페이스와 줄바꿈을 모두 동일한 공백으로 처리하기 때문에,
한 줄이든 여러 줄이든 cin >> n >> m;으로 값을 받을 수 있습니다.
1
2
그렇기 때문에 입력을 이런 형태로 받아도 무사히 정답 처리를 받을 수 있습니다.
#include <bits/stdc++.h>
using namespace std;
int main()
{
cin.tie(0)->sync_with_stdio(0);
int n, m;
cin >> n >> m;
cout << n + m;
}
하지만 파이썬의 input 함수는 모든 입력을 문자열로 받기 때문에, C++에서처럼
입력을 한 줄이 아닌 여러 줄로 받아도 된다고 생각하고 코드를 작성하면 런타임 에러를 받을 수 있습니다.
아래의 코드는 입력을 두 줄로 받을 수 있다고 상정하고 작성해, 런타임 에러 판정을 받은 코드입니다.
n = int(input())
m = int(input())
print(n + m)
입력받은 문자열을 공백을 기준으로 분리하고 싶다면, split 함수로 이를 분리하고, map 함수를 이용해 입력의 자료형을 결정할 수 있습니다.
n, m = map(int, input().split())
print(n + m)
빠른 입출력
C++에서 빠른 입출력을 위해 ios::sync_with_stdio(false), cin.tie(0) 을 사용하고, endl의 사용을 지양하듯이,
파이썬 또한 빠른 입출력을 위해 input 함수 대신 sys.stdin.readline 함수를 사용합니다.
import sys를 코드의 윗줄에 추가하면 sys.stdin.readline을 사용할 수 있지만,
import sys
input = sys.stdin.readline
위의 코드처럼 sys.stdin.readline을 길게 쓰지 않고 input처럼 사용할 수도 있습니다.
하지만 sys.stdin.readline은 input과 달리 입력의 끝에 개행 문자 \n이 포함되어 있으므로,
개행 문자 제거가 필요한 경우 rstrip 함수를 사용하는 것이 좋습니다.
위의 코드 외에도
input=open(0).readline
을 사용하면 import sys 없이 간결하게 빠른 입출력을 사용할 수 있습니다.

PyPy3로도 제출해보기
가끔 문제의 풀이에 틀린 점이 없는 것 같음에도 불구하고, 시간 초과 판정을 받는 경우가 있습니다.
대부분의 경우, PyPy3가 파이썬보다 속도가 빠르기 때문에, PyPy3로 제출했을 때에도 시간 초과 판정을 받는지 확인해보는 것이 좋습니다.
