상세 컨텐츠

본문 제목

[백준(Baekjoon)] 11718번 (그대로 출력하기)

PROGRAMMING/Algorithm

by koharin 2019. 3. 28. 22:14

본문

728x90
반응형

 

입력받은 그대로 출력하는 프로그램을 작성하는 문제이다.

하지만 조건이 있다.

입력 최대 100줄,

알파벳 소문자&대문자, 공백, 숫자로만 이루어져 있고, 

각 줄 100글자 넘지 않으며, 

빈줄은 주어지지 않고, 

각 줄은 공백으로 시작하거나 끝나지 않는다.

 

이 모든 조건을 만족하려면

EOF(End Of File)을 사용해야 한다.

EOF는 

 

 

이렇게 설명할 수 있다. (출처: 위키백과)

데이터 소스로부터 더 이상 읽을 수 있는 데이터가 없음을 나타내므로

문자를 계속 입력받다가 한계에 다달았을 때, 

즉 EOF을 만났을 때 break하도록 하면 된다.

 

C언어로 

 

 

이렇게 작성할 수 있다.

getchar로 입력을 계속 받는데 만약 EOF를 만나면 break하고 putchar로 출력하도록 한다.

+ getchar은 기본적으로 int형을 반환하기 때문에 int input; 이라고 작성해도 된다.

 

파이썬으로는

 

 

이렇게 작성하면 IDLE에서 제대로 출력되는데 계속 컴파일 에러가 생긴다...

그리고 파이썬에서도 EOFError을 사용하는 것이 있던데

except EOFError: break라고 작성하면 에러각 뜨고 

if EOFError: break라고 쓰면 한 번만 출력된다.

(파이썬으로는 최근 자료가 많이 없다ㅠㅠ)

찾아봤을 때는

for i in range(100):

print(input())

이것도 됐던데 지금은 왜 안 되는지 모르겠다.

728x90
반응형

관련글 더보기