본문 바로가기
Python/기본문법

[Python] 코딩테스트용 입력함수 구현

by 백호루이 2024. 3. 16.
반응형

Python에서는 input() 함수를 통해 한 줄씩 입력 받는다. 한 줄을 통째로 입력 받으므로 쪼갤 필요가 있을 때는 split() 함수를 사용한다. 그리고 입력받은 결과는 string 타입이기 때문에 정수로 변환하기 위해서는 int()로 캐스팅 한다.

 

1. 숫자 하나를 입력 받기

ex) 5

a = int(input())

 

2. 한 줄에 여러개의 숫자를 입력 받기

ex) 3 5

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

 

3. 리스트를 통해 한 줄에 있는 숫자를 배열로 저장하기

ex) 1 2 3 4 5 6 7 

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

 

4. 한 줄의 문자열 여러 개 입력받기

ex) abc def

a, b = input().split()

 

5. 문자열 여러 줄을 입력받아 배열로 저장하기

ex) 

ABCDEF

BCDEFA

CDEFAB

str = [input() for _ in range(n)]

 

6. 한 줄에 띄어쓰기 없이 정수를 여러 개 받았을 때, 2차원 배열로 저장하기

ex)

0101

1010

0101

1010

arr = [list(map(int, input()) for _ in range(n)]

 

7. 한 줄에 띄어쓰기가 있는 정수를 여러개 받았을 때, 2차원 배열로 저장하기

ex)

1 2 3 4 5

2 3 4 5 1

3 4 5 1 2

arr = [list(map(int, input().split())) for _ in range(n)]

 

 

입출력 데이터의 수가 10,000개 이상으로 너무 많다면 빠른 입출력 함수를 사용해야 한다.

그럴 경우 input() 대신 sys.stdin.readline()을 사용하면 된다.

ex) input = sys.stdin.readline 으로 선언해두면 그냥 input()를 사용하듯이 쓰면 된다.

 

8. sys 함수 사용하기 

import sys
n = int(sys.stdin.readline())

 

9. 첫번째 n 만큼 반복해서 입력받기

ex)

14

push 1

push 2

...

top

import sys
n = int(sys.stdin.readline())

for i in range(n):
	command = sys.stdin.readline().split()
반응형

댓글