알고리즘 문제는 적절한 입력이 주어졌을 때 그 입력을 받아 알고리즘을 수행한 뒤의 결과를 출력할 것을 요구한다. 따라서 알고리즘 문제풀이의 첫 번째 단계는 데이터를 입력받는 것이다.
파이썬에서 데이터 입력받을 때 사용하는 함수를 알아보자.
파이썬에서 데이터를 입력받을 때에는
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