티스토리 뷰
입력 받기 - input( )
input()의 경우 한 줄의 문자열을 입력 받도록 해준다.
data = input()
입력받은 데이터를 정수형 데이터로 처리해야하는 경우 int() 함수를 사용한다.
n = int(input())
코딩 테스트>> 여러 개의 데이터를 입력받을 때는 데이터가 공백으로 구분되는 경우가 많다. 그래서 입력받은 문자열을 띄어쓰기로 구분하여 각각 정수 자료형의 데이터로 저장하는 코드의 사용 빈도가 매우 높다.
data = list(map(int, input().split()))
-
input()으로 입력받은 문자열을 split()을 이용해 공백으로 나눈 리스트로 변환한다.
-
map을 이용해 해당 리스트의 모든 원소에 int() 함수를 적용한다.
-
최종적으로 그 결과를 list로 다시 바꿔준다.
예) 입력을 위한 전형적인 소스코드
# 입력 예시
5
65 90 75 34 99
# 데이터의 개수 입력
n = int(input())
# 각 데이터를 공백으로 구분하여 입력
data = list(map(int, input().split()))
data.sort(reverse = True) # 내림차순 정렬
print(data) # [99, 90, 75, 65, 34]
예) 공백을 기준으로 구분하여 적은 수의 데이터 입력
# 입력 데이터
3 5 7
# n, m, k를 공백으로 구분하여 입력
n, m, k = map(int, input().split())
print(n, m, k) # 3 5 7
코딩 테스트>> 정렬, 이진 탐색, 최단 경로 문제의 경우 매우 많은 수의 데이터가 연속적으로 입력이 되곤 한다. 가령 1,000만 개가 넘는 라인이 입력되는 경우도 있는 데, 이럴 경우 입력을 받는 것만으로도 시간 초과를 받을 수 있다. (각 데이터가 공백으로 구분되어 입력되는 게 아니라, 한 줄마다 입력되는 경우도 존재한다.) → 사용하는 언어별로 더 빠르게 입력 받는 방법을 알고 있어야한다.
기본 input() 함수 : 동작 속도가 느려서 시간 초과로 오답 판정을 받을 수 있다.
→ 파이썬의 sys 라이브러리의 sys.stdin.readline() 함수를 이용한다.
sys.stdin.readline( )
input() 함수와 같이 한 줄씩 입력받기 위해 사용한다.
import sys
data = sys.stdin.readline().rstrip()
한 줄을 입력받고 나서는 rstrip() 함수를 꼭 호출해줘야 한다. readline()으로 입력받으면 입력 후 엔터(Enter)가 줄 바꿈 기호로 입력되게 되므로, 이 공백 문자를 제거해 주는 rstrip() 함수를 꼭 호출해줘야 한다.
출력 하기 - print( )
print() 함수는 변수나 상수를 매개변수로 입력받아 이를 표준 출력으로 출력한다. 각 변수를 콤마(,)로 구분하여 매개변수로 넢을 수 있으며, 이 경우 각 변수가 띄어쓰기로 구분되어 출력된다.
a = 1
b = 2
print(a, b) # 1 2
print() 함수는 기본적으로 출력 이후에 줄 바꿈을 수행한다. 따라서 print()를 사용할 때마다 출이 변경된다고 볼 수 있다.
a = 1
b = 2
print(a)
print(b)
# 출력
1
2
코딩 테스트>> 일부 문제의 경우 출력할 때 문자열과 수를 함께 출력해야 되는 경우가 있는데, 이 경우 파이썬에서는 단순히 더하기 연산자(+)를 이용하여 문자열과 수를 더하면 오류가 발생한다.
예) 출력 시 오류가 발생하는 소스코드
answer = 7
print("정답은 " + answer + "입니다.") # TypeError: cannot concatenate 'str' and 'int' objects
솔루션1) str() 함수를 이용하여 출력하고자 하는 변수 데이터를 문자열로 바꾸어준다.
answer = 7
print("정답은 " + str(answer) + "입니다.") # 정답은 7입니다.
솔루션2) 각 자료형을 콤마(,)를 기준으로 구분하여 출력한다.
answer = 7
print("정답은", str(answer), "입니다.") # 정답은 7 입니다.
print("정답은", answer, "입니다.") # 정답은 7 입니다.
→ 변수의 값 사이에 의도치 않은 공백이 삽입될 수 있다.
솔루션3) Python 3.6 이상의 버전부터는 f-string 문법을 사용해 출력할 수 있다.
answer = 7
print(f"정답은 {answer}입니다.") # 정답은 7입니다.
'Python' 카테고리의 다른 글
[Python] 정렬 (Sort) : sort(), sorted(), reverse, key (0) | 2021.03.05 |
---|---|
[Python] 코딩 테스트에 필요한 6가지 파이썬 표준 라이브러리 (1) | 2020.10.24 |
[Python] 함수 (function) (0) | 2020.10.23 |
[Python] 반복문 - while 문, for 문 (0) | 2020.10.23 |
[Python] Set (집합) (0) | 2020.10.21 |