입출력(Python)

2023. 12. 22. 16:43포트폴리오/코딩 테스트

 

입력

 

한 줄의 문자열/데이터 입력받을 때 : input()

정수형 데이터로 처리 : int() 함수 사용, int(input())

공백으로 구분되는 여러 개의 데이터를 입력받을 때 : list(map(int, input().split()))

n = int(input())
data = list(map(int, input().split()))
data.sort(reverse = True)
# 공백으로 구분된 개수가 많지 않을 때
n, m = map(int, input().split())

 

 

15552번: 빠른 A+B

첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.

www.acmicpc.net

 

입력을 최대한 빠르게 받아야 하는 경우(for문 문제를 풀기 전에) 주의해야 할 점

 

문제를 풀다보면, 입력을 최대한 빠르게 받아야 하는 경우가 있다. ex) 정렬, 이진 탐색, 최단 경로 문제

입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다.

이 경우 input 대신 sys.stdin.readline을 사용할 수 있다. 단, 이때는 맨 끝의 개행문자(줄 바꿈 기호)까지 같이 입력받기 때문에 문자열을 저장하고 싶을 경우 .rstrip() 함수 추가로 해 주는 것이 좋다.

 

# sys.stdin.readline() 설명 블로그 - https://yeomss.tistory.com/120
import sys
sys.stdin.readline().rstrip()
# https://velog.io/@nang_zz/Python-sys.stdin.readline-readlines-read-%EC%B0%A8%EC%9D%B4
list(map(int, sys.stdin.read().split()))

 

출력

 

print(a, b) # 콤마','를 쓸 경우 변수가 띄어쓰기로 구분되어 출력된다.