Python | 입출력

Hyeonju L.·2021년 2월 16일
0

Python

목록 보기
9/9

알고리즘 문제는 적절한 입력이 주어졌을 때 그 입력을 받아 알고리즘을 수행한 뒤의 결과를 출력할 것을 요구한다. 따라서 알고리즘 문제풀이의 첫 번째 단계는 데이터를 입력받는 것이다.

파이썬에서 데이터 입력받을 때 사용하는 함수를 알아보자.

1. input()

파이썬에서 데이터를 입력받을 때에는 input()을 이용한다.
input()은 한 줄의 문자열을 입력받도록 해준다.

입력받은 데이터를 정수형 데이터로 처리하기

n = int(input())
입력받은 문자열 데이터를 정수형 데이터로 처리하기 위해 문자열을 정수로 바꾸는 int()함수를 이용해아 한다.

다수의 데이터 입력 받기

list(map(int, input().split()))
띄어쓰기로 구분된 여러개의 데이터를 정수 자료형의 데이터로 저장하는 코드

코드 동작과정

  • input()으로 입력된 데이터를 split() 을 이용해 공백으로 나눈 리스트로 변경
  • map을 이용해 해당 리스트의 모든 원소에 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]

2. sys.stdin.readline()

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
profile
What you think, you become. What you feel, you attract. What you imagine, you create.

0개의 댓글