본문 바로가기

카테고리 없음

[Python] 다양한 input() 방법

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()을 반복적으로 호출하여 한 줄씩 읽는 것이 좋습니다.