[백준]Input 방식

민지·2024년 12월 5일

알고리즘

목록 보기
2/15

- input(): 사용자로부터 입력을 받아 문자열로 반환하는 함수

N = input() #문자열 입력 받기

M = int(input()) #정수 입력 받기

values = input().split() #문자열 리스트 입력받기

- map(): 반복 가능한 데이터 구조의 요소에 지정된 함수를 적용하는 기능

a,b = map(int,input().split()) #공백으로 구분된 두 정수 입력받기

data = list(map(int,input().split())) #한 줄에 여러 개의 값 입력받아 리스트로 저장
  • 여러 줄에 걸친 입력 처리
N = int(input()) #첫 번째 줄에 입력받는 개수
for _ in range(N):
	a,b = map(int,input().split()) #각 줄에 공백으로 구분된 두 정수 입력 받기

입력 유형별 예제

1. 단일 정수 입력

N = int(input())

2. 한 줄에 여러 개의 정수 입력

a,b,c = map(int,input().split())

3. 한 줄에 여러 개의 값을 리스트로 입력받기

numbers = list(map(int,input().split()))

4. N개의 값을 N줄에 걸쳐 입력받기

N = int(input())
M = [int(input)) for _ in range(n)]

5. N * M 형태로 입력받기

N,M = map(int,input().split()) #첫 번째 줄에 행과 열의 개수를 입력받음
matrix = [list(map(int,input().split())) for _ in range(N)] 
#N개의 행에 대해 M개의 값을 입력받아 2차원 리스트로 저장

6. 빠른 입력 처리:sys.stdin.readline()

import sys
input = sys.stdin.readline()

N = int(input().strip()) 개행 문자 제거
for _ in range(N):
	a,b = map(int,input().split())

7. 여러 줄을 한 번에 읽기:sys.stdin.read()

  • 데이터의 줄 수가 명확하지 않거나 한 번에 파일 끝까지 읽어야 하는 경우 사용
import sys
input = sys.stdin.read

data = input().splitnes() #각 줄을 리스트로 나누기
for line in data:
	a,b = map(int,line.split())

+EOF 입력 처리에 사용


  1. 한 줄에 하나의 값 입력
3
1
2
3
import sys
input = sys.stdin.read

#여러 줄 입력을 리스트로 저장
data = input().splitnes()
n = int(data[0]) #첫 줄은 숫자의 개수
numbers = list(map(int,data[1:]))
print(n,numbers)
  1. 공백으로 구분된 값 입력
1 2 3
numbers = list(map(int,input().split())
  1. 여러 줄에 걸쳐 공백으로 구분된 값
3 4
1 2
5 6
import sys
input = sys.stdin.read

#모든 줄 읽기
data = input().splitnes()
result = [list(map(int,line.split())) for line in data]
  1. 첫 줄에 입력의 개수, 그다음 줄부터 데이터
3
1 2 3
4 5 6 
7 8 9
n = int(input())
matrix = [list(map(int,input.split()))) for _ in range(n)]
  1. EOF 기반 입력
1 2
3 4
import sys
input = sys.stdin.read

data = input().splitnes()
for line in data:
	a,b = map(int,line.split())
  1. 단일 문자열 입력
HelloWorld
string = input().strip()
  1. 좌표와 같은 구조적 데이터
5
1 2
3 4
5 6
n = int(input()) #첫 줄은 좌표의 개수
points = [tuple(map(int,input().split())) for _ in range(n)]

8.대규모 데이터 입력 최적화

  • input() 대신 sys.stdin.read() 사용하는 것이 더 빠름
import sys
input = sys.stdin.read
data = input().split()
profile
데이터 분석가를 희망합니다!

0개의 댓글