개발 공부 기록

[코테준비] python으로 입력받기 본문

공부/코딩테스트

[코테준비] python으로 입력받기

_김도연 2020. 8. 31. 06:08

원래 c++로 코딩테스트 공부를 했었다가 python으로 코딩테스트 공부를 하기로 결심했다. 입력을 받는 부분에 대해서 찾아보는데 여러 방법이 있어 그에 대한 내용을 정리해보았다.

input()과 sys.stdin.readline() 어떤 걸 사용하지?

입출력 속도 비교하기

sys.stdin.readline() > raw_input() > input()

input() 으로 코드를 제출할 시, 시간초과가 뜨지만, sys.stdin.readline() 으로 제출할 시 정답이 뜨는 경우가 있다고 한다. sys.stdin.readline()를 사용하여 코딩테스트를 준비할 계획이다.

(sys.stdin.readline()를 쓰기 위해선 import sys를 해야한다.)

 

참고 : https://www.acmicpc.net/board/view/855

 

문자열로 저장하기

sys.stdin.readline는 맨 끝의 개행문자까지 같이 입력받기 때문에 문자열을 저장하고 싶을 경우 .rstrip()을 추가로 해 주는 것이 좋다.

 

2차원 배열 입력받기

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

참고 : https://velog.io/@dlrmwl15/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9E%85%EB%A0%A5%EB%B0%9B%EA%B8%B0

+ 그 외 주의할 사항

python으로 코딩을 할 때, 재귀함수가 있는 경우 최대 재귀 깊이를 설정해줘야 한다고 한다.

C의 경우 정상적으로 돌아가는데 python으로 돌리면 런타임 오류가 뜨는 경우가 있다고 한다. 따라서 아래와 같이 재귀 허용 깊이를 수동으로 늘려주는 코드를 상단에 적어줘야 한다고 한다.

import sys
sys.setrecursionlimit(10**8) # 10^8 까지 늘린다.
Comments