개념
입력의 끝까지 읽기
EOF는 입력 데이터의 끝을 나타냅니다. 데이터 개수가 따로 주어지지 않는 문제에서는 다음 입력값이 있는 동안 계속 읽어 처리합니다.
| 동작 | C++ | Java | Python |
|---|---|---|---|
| 토큰 입력 성공 확인 | while (cin >> a >> b) | sc.hasNextInt() | 전체 입력을 읽어 토큰 순회 |
| 줄 단위 EOF 확인 | while (getline(cin, s)) | br.readLine()이 null인지 확인 | for line in sys.stdin |
마지막 줄에 줄바꿈이 없어도 그 줄의 데이터는 읽을 수 있습니다. 빈 줄은 줄 단위 입력에서 길이가 인 문자열로 읽히며, EOF와 구분됩니다. 공백 단위로 값을 읽으면 빈 줄도 공백으로 처리합니다.
복잡도
입력 전체 문자 수를 이라고 합니다.
| 연산 | 시간복잡도 | 공간복잡도 |
|---|---|---|
| EOF까지 순회 | 토큰 단위 누적 , 줄 단위 처리는 최대 줄 길이에 비례 |
예제
문제
입력 끝까지 주어지는 두 수의 합을 각각 구하여라.
입력
입력이 끝날 때까지 각 데이터 줄에 보다 작은 두 양의 정수가 공백을 사이에 두고 주어진다. 데이터 줄은 개 이상 개 이하이다. 줄 사이에 빈 줄이 있을 수 있다.
출력
각 데이터 줄의 두 수의 합을 한 줄씩 출력한다.