문제
입력 받은 대로 출력하는 프로그램을 작성하시오.
입력
입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.
출력
입력받은 그대로 출력한다.
예제 입력 1 복사
Hello
Baekjoon
Online Judge
예제 출력 1 복사
Hello
Baekjoon
Online Judge
문제풀이1
import sys
A = sys.stdin.readlines()
for i in A:
print(i.rstrip())
두 번째 방법은 sys.stdin의 readlines()를 활용한 방법입니다. readlines는 여러 입력을 한 번에 받아서 list로 return 해주는 메서드입니다. 각각의 문장의 마지막에는 개행문자('\n')가 함께 저장되므로 list에 접근하여 개별 원소를 출력할 때는 rstrip 메서드를 활용하여 개행 문자를 제거해줍니다.
아래와 같은 방법대로 하면, 입력이 종료되면 자동으로 words라는 list를 반환해주고 우리가 할 일은 그저 해당 list를 출력해주기만 하면 됩니다. 코드 길이는 85B이고 소요 시간은 40ms로 압도적으로 효율적입니다. 여러 줄을 입력 받을 때는 readlines() 방법을 잘 활용하는 것이 좋을 것 같습니다.
문제풀이2
while True:
try:
print(input())
except EOFError:
break
먼저 첫 번째 방법은 try, except 구문을 활용한 방법입니다. 제가 문제를 처음 봤을 때 '입력을 몇 번 받는지 제시하지 않았으니, break 조건이 핵심이겠구나' 라는 생각이 들었고, 이를 코드로 구현하기에 try, except가 딱이다 라는 생각을 했습니다. 아래의 코드는 "몇 번인지 모르겠지만 일단 계속 입력 받은 것을 출력하고(try) 입력이 종료되면 반복문을 break 해라" 라는 뜻입니다. 코드 길이는 90B이고 소요 시간은 72ms 입니다.
'코딩테스트 > 파이썬 코딩테스트' 카테고리의 다른 글
문자열 반복 (백준 2675번 , 파이썬) (0) | 2023.09.19 |
---|---|
최소, 최대 (백준 10818번 , 파이썬) (1) | 2023.09.19 |
학점 계산 (백준 2754번 , 파이썬) (0) | 2023.09.15 |
행렬 덧셈 (백준 2738번 , 파이썬) (0) | 2023.09.14 |
과제 안 내신 분..? (백준 5597번 , 파이썬) (0) | 2023.09.13 |