Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

Olive Study Room

[백준 알고리즘] #10951번 : EOF 본문

cs/알고리즘

[백준 알고리즘] #10951번 : EOF

Olive Dev 2021. 6. 18. 00:23

테스트 케이스의 종료 지점이 없을 때! 무한정 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된다.

 

 

 

 

 

Comments