Olive Study Room
[백준 알고리즘] #10951번 : EOF 본문
테스트 케이스의 종료 지점이 없을 때! 무한정 input을 받아야 할 때!
( = 프로그램 종료 시점이 명시되어있지 않은 경우)
이 경우 while true를 조건으로 하면 무한루프가 돌아 런타임 에러가 나는데...!
'EOF(End Of File)' 를 사용해서 멈춰야한다.
swift에서 입력은 readline() 메소드를 통해서 받는데, 이 메소드를 살펴보면
readLine(strippingNewline:)
최신 line의 끝을 통하거나 EOF에 도달할 때까지를 표준 input으로 읽어 문자열을 반환한다.
Declaration
func readLine(strippingNewline: Bool = true) -> String?
Parameters
strippingNewline
true라면 newline의 characters와 character의 조합이 결과로부터 제거된다.
그렇지 않으면 newline의 characters와 character의 조합이 보존된다. 디폴트는 true.
번역이라 이해가 어려우니 반환값을 보면
Return Value
표준 입력에서 읽은 문자열. 만약 readLine()을 호출할 때 EOF에 이미 도달한 경우 결과는 nil이다.
정리
EOF
파일의 끝을 만났음을 알리는 값.
- 실제로는 -1을 가리킨다.
- 파일의 끝을 탐지하는 방법은 운영체제마다 다르다. (대부분의 유닉스-UNIX 시스템에서는 Ctrl+D를 누르면 EOF를 발생시킬 수 있다)
#10951번
while let line = readLine() {
let number = line.split(separator: " ").map({Int($0)!})
print(number[0] + number[1])
}
Ctrl + D를 입력하여 EOF를 발생시키면 readline은 false가 되고 반복이 break된다.
'cs > 알고리즘' 카테고리의 다른 글
[백준 알고리즘] #2577번 : 정수가 포함하는 숫자 개수 출력 / forEach (0) | 2021.06.19 |
---|---|
[백준 알고리즘] #10818번 : 배열/속도 향상 (0) | 2021.06.19 |
[백준 알고리즘] #2439번 : stride, print(_:separator:terminator:) (1) | 2021.06.14 |
[백준 알고리즘] 1. 입출력과 사칙연산 / 2. if문 / 3. for문 / 4. while문 (0) | 2021.06.08 |
[알고리즘] 1. 알고리즘의 분석: 시간 복잡도 (0) | 2021.04.22 |
Comments