티스토리 뷰

반응형
 

11718번: 그대로 출력하기

입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시

www.acmicpc.net

입력

입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.

출력

입력받은 그대로 출력한다.

예제 입력 1 복사

Hello
Baekjoon
Online Judge

예제 출력 1 복사

Hello
Baekjoon
Online Judge

 

 

제목이 그대로 출력하기라서 쉬워보이지만 함정이 있다.

 

input으로 받게 되면 줄 수를 예측할 수 없다는 것.

 

따라서 input 이외의 다른 입력함수들을 써야 한다.

 

다음은 예시 코드들이다.

 

예시 1

import sys
print(sys.stdin.read())

 

가장 보편적인 sys.stdin.read()가 있다.

sys라는 모듈을 임포트 해주면 표준 스트림을 사용할 수 있는데, standard stream이라고 해서 운영체제에서 기본적으로 제공하는 입출력 장치의 하나이다.

 

stdin은 표준 입력 -> 0으로 표시

stdout은 표준 출력 -> 1로 표시

stderr은 표준 에러 -> 2로 표시다.

 

예시 2

print(open(0).read())

 

따라서 위의 숫자를 가져온다면 open(0).read() 는 sys 모듈을 임포트 해주지 않더라도 sys.stdin.read()와 동일한 효과를 낸다. 단, open(1)이나 open(2)는 작동하지 않으니 주의 할 것.

 

예시 3

import sys
a= sys.stdin
for line in a:
    print(line,end='')

 

.read() 메소드를 쓰지 않을 때 어떻게 출력되는지를 예시로 든 것이다.

 

a에 들어가는 건 각 모든 글자들의 리스트라고 생각하면 편하게 라인을 출력할 수 있다.

반응형