0. 시작
백준 9251번을 풀면서 해당 입력 값을 받으면서 어떤 방법이 더 좋을지 고민해보았다.
# 입력값
ACAYKP
CAPCAK
1. strip() 메서드 사용
strip() 메서드는 문자열의 양쪽 끝에 있는 공백 문자(개행 문자 포함)를 제거합니다.
import sys
input = sys.stdin.readlines()
W1 = input[0].strip()
W2 = input[1].strip()
print(W1) # ACAYKP 출력
print(W2) # CAPCAK 출력
2. map() 함수와 strip() 메서드 사용
map() 함수를 사용하여 입력받은 각 줄에 strip() 메서드를 적용할 수 있습니다.
import sys
input = sys.stdin.readlines()
W = [line.strip() for line in input]
print(W[0]) # ACAYKP 출력
print(W[1]) # CAPCAK 출력
3. 리스트 컴프리헨션 사용
리스트 컴프리헨션을 사용하여 입력받은 각 줄에서 개행 문자를 제거할 수도 있습니다.
import sys
input = sys.stdin.readlines()
W = [line.strip() for line in input]
print(W[0]) # ACAYKP 출력
print(W[1]) # CAPCAK 출력
4. input() 함수를 여러 번 호출
sys.stdin.readline() 대신 input() 함수를 여러 번 호출하여 각 줄을 읽을 수도 있습니다. input() 함수는 자동으로 개행 문자를 제거합니다.
W1 = input()
W2 = input()
print(W1) # ACAYKP 출력
print(W2) # CAPCAK 출력
5. 어떤 방법을 사용해야 할까요?
- 가장 간단하고 효율적인 방법은 strip() 메서드를 사용하는 것입니다.
- map() 함수와 리스트 컴프리헨션을 사용하면 코드를 더 간결하게 작성할 수 있습니다.
- input() 함수를 여러 번 호출하는 방법은 간단하지만, 입력 줄 수가 많아지면 코드가 길어질 수 있습니다.
주의: sys.stdin.readlines()는 입력 전체를 한 번에 읽어오므로, 입력 크기가 매우 큰 경우에는 메모리 사용량이 많아질 수 있습니다. 입력 크기가 큰 경우에는 sys.stdin.readline()을 반복적으로 호출하여 한 줄씩 읽는 것이 좋습니다.