Python에서 코딩 테스트시에 입력을 처리하는 방법

배열 생성 및 초기화

1차원 배열 초기화

arr = [0]*5
arr
#출력 
> [0, 0, 0, 0, 0]

2차원 배열 초기화

row = 5
col = 2
arr = [[0]*col]*row
arr
#출력 
> [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]

arr = [[0]*col for _ in range(row)]
arr
#출력 
> [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]

입력 값 처리

입력 샘플

5
10  10
20  35
22  34
58  60
123 2148

input() 사용법

import sys

N = int(input())
for i in range(N):
        a,b = map(int, sys.stdin.readline().split())
        print( a , b )
#출력
> 10  10
> 20  35
> 22  34
> 58  60
> 123 2148

sys.stdin.readline()

import sys

N = int(sys.stdin.readline())  ## 동일 하고 이부분만 ㅂ녁여되ㅏㅁ
for i in range(N):
        a,b = map(int, sys.stdin.readline().split())
        print( a , b )
#출력
> 10  10
> 20  35
> 22  34
> 58  60
> 123 2148

라인단위 처리

한줄에 한개의 변수 저장 하기

입력 형태

79

int을 변한화여 대입

import sys
a = int(int,sys.stdin.readline())

한줄에 여러개의 변수를 Split 하기

입력 형태

1 3 5 7 9 

split을 이용하여, map->int로 변한화여 개별 대입 방법

import sys

a, b, c, d, e = map(int,sys.stdin.readline().split())

split을 이용하여, map->int로 변한화여 리스트에 저장

import sys

listdata = list(map(int,sys.stdin.readline().split()))

활용 예제

N줄의 리스트 저장

입력 형태 ( 5줄의 이름 출력 경우)

5       
홍길동
김철수
이귀남
하현수
이진수

strip()는 trim()과 같이 앞뒤 공백 제거 역할.

import sys
N = int(sys.stdin.readline())
data = [sys.stdin.readline().strip() for i in range(N)]

N줄의 2차원을 1차원 리스트로 처리

입력 형태 ( 3행 3열의의미)

3       
1 2 3
4 5 6
7 8 9

1차원 리스트로 모두 등록될 때

import sys
N = int(sys.stdin.readline())
arr =[];
for i in range(N):
    arr.append(list(map(int,sys.stdin.readline().split())))
arr
#출력
> [1,2,3,4,5,6,7,8,9]

N줄의 2차원을2차원 리스트로 처리

입력 형태 ( 3행 3열의의미)

3       
1 2 3
4 5 6
7 8 9

2차원 리스트로 모두 등록될 때

import sys

INF=-1  #초기값
N = int(sys.stdin.readline())
arr = [[INF for _ in range(N)] for _ in range(N)] # _ 의미 값을 사용하지 않는 무시의 의미
print(arr)

#출력
> [[-1, -1, -1, -1, -1, -1],
>  [-1, -1, -1, -1, -1, -1],
>  [-1, -1, -1, -1, -1, -1],
>  [-1, -1, -1, -1, -1, -1],
>  [-1, -1, -1, -1, -1, -1],
>  [-1, -1, -1, -1, -1, -1]]


for i in range(N):
    data = sys.stdin.readline().split();
    for j in range(N):
        arr[i][j] = data(j);
arr
#출력
> [[1,2,3],[4,5,6],[7,8,9]]