from palette import colorful_colors

[알고리즘 with C++] 입출력 본문

알고리즘/알고리즘 with 파이썬

[알고리즘 with C++] 입출력

colorful-palette 2024. 1. 10. 08:52

1. 입출력

입출력을 빠르게 하기 위한 헤더

ios::sync_with_stdio(false);
cin.tie(NULL);

// cin과 cout을 빠르게 하기 위한 방법
// 대신 멀티쓰레드는 불가능, scanf, printf 등 사용 불가

 

 

한 줄에 여러개 입력 받기: 

# 예시: 1 2 4 3 5 를 list로 입력받고 정렬하고 싶을때: 
number = list(map(int, input().split()))
number.sort()

 
여러줄에 여러개 입력받기 (List Comprehension 활용): comprehension과 list로 map을 묶어준다.

# 예시: 라인을 받을 횟수 n을 입력받고 라인마다 push 1 ,.... 이런식으로 여러줄에 여러개가 있을때:
n = int(input())
command = [list(map(str, input().split())) for _ in range(n)]
for c in command:	
# c[0], c[1], 이런식으로 n번재 줄의 m번째 요소에 접근이가능하다.

 
한 줄에 입력받은 문자열 문자별로 파싱하기:

string = input()
for i in string:	# i 는 string의 문자별로 접근 가능

 

 2차원 리스트 입력받기

# 행과 열 입력받기
n, m = map(int, input().split())

# 2차원 리스트 맵 정보 입력받기
graph = []
for i in range(n):
	graph.append(list(map(int, input())))	# list는 문자열을 받으면 문자로 쪼개주는 것을 이용한다!

2차원 리스트 초기화하기

# 가로가 M이고, 세로가 N일때:
graph = [[0 for col in range(M)] for row in range(N)]

 

 

sys 라이브러리 활용하기
경우에 따라 빠른 입출력을 필요로 할땐 sys라이브러리의 stdin, stdout을 쓸 수도 있다.

import sys
# 한 줄에 한 개 입력 받고 int로 변환하기 
N = int(sys.stdin.buffer.readline().rstrip())

# int로 된 i 출력하고 한줄띄우기 
sys.stdout.write(str(i)+'\n')

sys.stdin.readline() : input()보다 속도가 빨라 사용한다.
단 readline()은 개행문자(줄바꿈문자)를 포함하고 있다. 마지막에 개행문자가 포함되어 같이 출력되는 점 유의하기.
input()과 마찬가지로 split()을 사용할 수도 있다.
rstrip(): 오른쪽 공백을 삭제
lstrip(): 왼쪽 공백을 삭제
strip(): 왼쪽, 오른쪽 공백을 삭제

# 예시: map 이용해서 int로 변환하기
import sys
i, j = map(int, sys.stdin.readline().split())

 

2. 보조 라이브러리