알고리즘 문제 풀이의 첫 단계는 데이터를 입력 받는 것이다.
파이썬에서 데이터를 입력 받을 때는 input() 을 사용한다. input()의 경우는 한 줄의 문자열을 입력 받을 수 있도록 한다.
만약 파이썬에서 입력 받은 데이터를 정수형 데이터로 처리하기 위해서는 문자열을 정수로 바꿔주는 int() 함수를 사용해야 한다.
그리고, 여러 개의 데이터를 입력 받을 때는 데이터가 공백으로 구분되는 경우가 많다.
그래서 입력 받은 문자열을 띄어쓰기로 구분하고 각각 정수 자료형의 데이터로 저장하는 코드의 사용빈도가 매우 높다.
list(map(int, input().split()))
list(map(int, input().split()))의 동작과정은 가장 먼저 input()으로 입력받은 문자열을 split()을 이용해 공백으로 나눈 리스트로 바꾼 뒤에, map을 이용하여 해당 리스트의 모든 원소에 int() 함수를 적용한다. 최종적으로 그 결과를 list()로 다시 바꿈으로써 입력받은 문자열을 띄어쓰기로 구분하여 각각 숫자 자료형으로 저장하게 되는 것이다.
# 데이터의 개수 입력
n = int(input())
# 각 데이터를 공백으로 구분하여 입력
data = list(map(int, input().split()))
data.sort(reverse = True)
print(data)
5 ⏎
65 90 75 34 99 ⏎
[99, 90, 75, 65, 34]
# n, m, k를 공백으로 구분하여 입력
n, m, k = map(int, input().split())
print(n, m, k)
3 5 7 ⏎
3 5 7
입력의 개수가 많은 경우에는 단순히 input() 함수를 그대로 사용하지는 않는다.
파이썬의 기본 input() 함수는 동작 속도가 느려서 시간 초과로 오답 판정을 받을 수 있기 때문이다.
이 경우 파이썬의 sys라이브러리에 정의된 sys.stdin.readline() 함수를 이용하는데 sys 라이브러리는 다음과 같은 방식으로 사용하며 input() 함수와 같이 한 줄씩 입력 받기 위해 사용한다.
import sys
sys.stdin.readline().rstrip()
sys 라이브러리를 사용할 때는 한 줄 입력을 받고 나서 rstrip() 함수를 꼭 호출해야한다.
readline()으로 입력하면 입력 후 Enter가 줄 바꿈 기호로 입력되는데, 이 공백 문자를 제거하기 위함이다.
import sys
#문자열 입력받기
data = sys.stdin.readline().rstrip()
print(data)
Welcome to IToriginal Velog ⏎
Welcome to IToriginal Velog
출력을 할 때는 print()를 이용하여 출력을 진행할 수 있다.
# 출력할 변수들
a = 1
b = 2
print(a, b) => 1 2
# 출력할 변수들
a = 1
b = 2
print(a) => 1
print(b) => 2
# 출력할 변수들
answer = 7
print("정답은" + str(answer) + "입니다.")
# 출력할 변수들
answer = 7
print("정답은",str(answer),"입니다.")
Python 3.6 이상 버전부터는 f-string 문법을 사용할 수 있다.
answer = 7
print(f"정답은 {answer}입니다.")