본문 바로가기

백준

input관련 정리

반응형

input = sys.stdin.readline

input = sys.stdin.readline에 대해서 이야기 하겠습니다.

이존의 input()의 경우는 메시지를 출력하는 과정이 필요합니다.

input("입력할 문장을 입력하시오") 이런식으로 이해하기 쉬운코드입니다.

하지만 " 입력할 문장을 입력하시오"라는 문자열이 필요없는 경우면 필요없는기능을 쓰게 되는 셈인데요

이러면 알고리즘상으로 필요없는 자원을 쓸수밖에없습니다.

input = sys.stdin.readline을 입력하는 것만으로 prompt message를 사용하지않을 수 있습니다.

 

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

위코드를 여러번 입력을 한번에 받아서 리스트로 만드는 코드임

 

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

이코드는 1번과2번을 응용한코드이다.

 

map(int,input().split())

기존의 input은 한번의 입력을 받는 형식입니다.

A=input()은 가능하지만 A,B=input()의 경우는 에러가 난다

그러면 한번에 어려개의 입력을 받는 방법은 위의 작성한 코드이다.

map(타입,input().split())이다.

타입에는 int외에서 double이나,float,string등의 방식이 존재한다.

이코드를 사용하면 여러번의 입력을 한번에 처리할 수있다.

 

list(map(int,input().split())) for i in range(m)

리스트입력에 있어서 행렬로 만드는 방식이다.

기존의 여러번 입력을 하는 경우는 [1,2,3,4,5,6] 이런 타입의 데이터를 만들것이다.

하지만 행렬로 

[[1,2,3]

,[4,5,6]]

받고 싶은 경우는 

[list(map(int,input().split())) for i in range("행렬의 행의 갯수")]

위코드를 통해서

1 2 3

4 5 6

이렇게 입력하면 행렬이 이만들어 집니다.

위경우는 행렬의 갯수는 2입니다.

 

반응형

'백준' 카테고리의 다른 글

1065백준  (0) 2024.02.16
백준 1929번  (1) 2024.02.01
백준 10815번  (1) 2024.01.31
행렬의 곱 구현코드 리스트버전  (1) 2024.01.08
행렬의 곱셈 백준2740  (1) 2024.01.08