본문 바로가기
소소한 팁

파이썬 슬기로운 input 받기(input, sys.stdin.readline)

by Jyujae 2022. 4. 13.

1. 필요성

모든 알고리즘 문제의 기본은 input을 적절한 'type'과 빌드업(?) 이 필요하다고 생각한다.

마치 축구에서 퍼스트 터치처럼..

구현 문제를 풀 때, 리스트의 형식을 고민하길래 정리해보기로 마음 먹었다.

 

2. list, map, split 사용하기

- 공백 기준으로 구분된 데이터를 받을 때(int형으로)

 

input:

1 2 3 4

 

- 2차원 리스트로 데이터를 받을 때

input:

2 3

1 2 3

4 5 6

 

-for 문 안에서 각각의 줄을 새로운 data라는 list 로 만드는 법

 

input:

3

1 2 3 4 5

2 3 4 5 6

6 7 8 9 0

 

- 한 줄에 한개의 정수를 리스트에 추가할 때

 

input:

3

1

2

3

 

3. stdinline 사용하기

- input을 활용해서 반복문 하에 여러줄을 입력받는 상황에서 메모리를 적게 사용(시간 초과 방지)

ex) 입력: 

4

1 1

32 61

17 631

12 123

 

sys.stdin.readline()

 

모두 import sys 한것으로 가정하고 작성됨

1. 한개의 정수

하나의 정수 input 받기

 

2. 임의의 개수를 한줄에

 

3. 임의의 개수를 n줄에(2차원 리스트)

input:

3

1 2 3 4

5 6 7 8

9 10 11

output:

data=[[1,2,3,4],[5,6,7,8],[9,10,11]]

 

-> data라는 리스트 안에 리스트 -> for문으로 각각 비교 가능

 

4. 문자열 n줄을 리스트에 저장할 때

list comprehension

 

for문으로 풀어서

 

input/output