알고리즘 문제는 적절한 입력이 주어졌을 때 그 입력을 받아 알고리즘을 수행한 뒤의 결과를 출력할 것을 요구한다. 따라서 알고리즘 문제풀이의 첫 번째 단계는 데이터를 입력받는 것이다.
파이썬에서 데이터 입력받을 때 사용하는 함수를 알아보자.
파이썬에서 데이터를 입력받을 때에는
input()을 이용한다.
input()은 한 줄의 문자열을 입력받도록 해준다.
n = int(input())
입력받은 문자열 데이터를 정수형 데이터로 처리하기 위해 문자열을 정수로 바꾸는int()함수를 이용해아 한다.
list(map(int, input().split()))
띄어쓰기로 구분된 여러개의 데이터를 정수 자료형의 데이터로 저장하는 코드
코드 동작과정
input()으로 입력된 데이터를 split() 을 이용해 공백으로 나눈 리스트로 변경int()함수 적용(문자열 > 정수형 데이터로 변경)list()를 이용해 리스트로 다시 바꿈ref. split 함수
>>> a = "Life is too short"
>>> a.split() # 띄어쓰기를 구분자로 하여 문자열 나누기
result: ['Life', 'is', 'too', 'short']
>>> b = "a:b:c:d"
>>> b.split(":") # ':'을 구분자로 하여 문자열 나누기
result: ['a', 'b', 'c', 'd']
# 데이터의 개수 입력
>>> n = int(input())
5
# 각 데이터를 공백으로 구분하여 입력
>>> data = list(map(int, input().split()))
65 90 75 34 99
>>> data.sort(reverse=True) # 내림차순으로 정렬
>>> print(data)
result: [99, 90, 75, 65, 34]
input()함수는 동작 속도가 느리다. 이를 보안하기 위해 sys 라이브러리에 정의되어 있는sys.stdin.readline()함수를 이용할 수 있다.
sys 라이브러리는input()함수와 같이 한 줄씩 입력받기 위해 사용한다.
import sys
sys.stdin.readline().rstrip()
sys 라이브러리 사용 시 한 줄 입력을 받고 난 후, rstrip() 함수를 꼭 호출해야 한다.
readline()으로 입력하면 입력 후 엔터가 입력되어 이 공백 문자를 제거하기 위해 rstrip() 함수를 이용해야 한다.
>>> import sys
>>> data = sys.stdin.readline().rstrip()
Hello World
>>> print(data)
result: Hello World