PS(Problem Solving)/python 개념, stl 정리

[Python] ps 용 python 입출력 방법 정리

LiaLi_1997 2023. 2. 6. 16:29

1. python 입력

1.1. input()

기본적인 입력방식이며 input() 함수는 str 로 입력을 받는다 

str1 = input()
num1 = int(input())

 

1.2. input.split()

split 은 구분자를 통해 문장을 나눠서 입력 받고 이를 배열 형태로 저장한다.

default 구분자는 공백 (' ') 이다.

str1 = input().split()

 

1.3. map([자료형], input().split())

map 은 입력을 받아서 split 한후 spread 형태로 변수에 값을 할당한다.

주의할점은 입력받는 변수의 개수가 내가 직접 지정한 변수의 개수와 일치하여야 한다. 그렇지 않으면 아래 이미지 밑쪽의 에러가 나온다

a, b, c = map(int, input().split())
d, e, f = map(str, input().split())

1.4. readline (한줄 입력 받기)

readline 은 import 를 요한다.

readline 은 기본적으로 문장끝에 존재하는 개행도 입력을 받는다.

하지만 split() 으로 나눠서 받을 때는 개행('\n') 이 안받아진다. --> 이는 확인이 필요함

import sys

readLineStr = sys.stdin.readline()
readLineList = sys.stdin.readline().split()

1.5. 2차원 배열의 입력

문제를 풀다보면 n 행 m 열의 데이터를 2차원 배열로 받아야 하는 경우가 있다.

여러가지 방법이 있겠지만 아래 방식이 많이 보이는 듯 하다.

# n 행 m 열 배열
n, m = map(int, input().split())
graph = []
for i in range(n):
    graph.append(list(map(int, input())))

print(graph)

1.6. n차원 배열 생성(초기화까지)

문제를 풀다보면 n 차원 배열을 초기화 해야하는 경우가 발생한다.

특히 그래프문제에서는 n 차원 문제에서 방문체크를 위해 방문배열을 만드는 경우가 많아서 이에 대해 정리한다

row, column, level = map(int, input().split())
array2D = [[0 for _ in range(column)] for _ in range(row)]
array3D = [[[0 for _ in range(column)] for _ in range(row)] for _ in range(level)]

2차원 배열 요소접근

array2D[row][column]

3차원 배열 요소접근

array3D[level][row][column]