python: 입출력 - 알고리즘편

2020. 1. 20. 15:42·Language/python

1. input() 말고 sys.stdin.readline() 를 사용하자.


입출력 속도에서 많은 차이가 발생합니다.

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

input() 으로 코드를 제출할 시, 시간초과가 발생하지만, sys.stdin.readline() 으로 제출할 시 정답이 된다는 점입니다.

직접 실행해보면서 테스트 해보시길 바랍니다. 

a = [int(x) for x in input().split()] 
# a = [1, 2, 3, 4 ,5]

 

import sys 
a = map(int, sys.stdin.readline()) # a = [1, 2, 3, 4, 5]
import sys n = input() 
a = [sys.stdin.readline() for i in range(n)] 
# a = ["1 2 3", "4 5 6"]

 

2. 재귀함수가 있는 경우, 최대 재귀 깊이를 설정해줘야 한다.


 

자주 접하는 DFS,BFS에 자주 사용된다.

파이썬의 재귀 허용 깊이의 기본치가 c 보다 약한건지, c 로 짠 DFS, BFS의 경우 문제 없이 돌아가지만,

파이썬으로 돌리면 런타임 오류가 뜨는 경우가 있다. 그래서 다음과 같이 재귀 허용 깊이를 수동으로 늘려주는 코드를, 코드 상단에 적어줘야 한다.

import sys 
sys.setrecursionlimit(10**8) # 10^8 까지 늘림.


3.pypy vs Python


PyPy 가 뭔지 찾아보니, 쉽게말해 파이썬 보다 몇 배 더 빠른 개선된 파이썬이라고 생각하면 된다.

좀 더 자세히 말하면, Python3 는 내부적으로는 C로 짜여져있는데, 이를 C가 아니라 Python으로 다시 짠 것이다.

때문에, 일반적으로 Python3 보다 PyPy로 제출해서 내는게 더 안전한 듯 하다. (빠르다는 의미에서)

한편, PyPy에서는 sys.setrecursionlimit(10**8) 이 안먹는다. 즉 임의로 재귀 호출 깊이를 설정할 수 없다는 것에 주의해야 한다.



출처: https://dailyheumsi.tistory.com/32 

'Language > python' 카테고리의 다른 글

Python: _(언더바) - 알고리즘편  (0) 2020.01.19
python - 정규식을 이용한 문자열 검색  (0) 2019.12.22
python - regex(정규표현식)  (0) 2019.12.22
python - string(2)  (0) 2019.12.22
python - string(1)  (0) 2019.12.22
'Language/python' 카테고리의 다른 글
  • Python: _(언더바) - 알고리즘편
  • python - 정규식을 이용한 문자열 검색
  • python - regex(정규표현식)
  • python - string(2)
dev.wookii
dev.wookii
Effort Maketh Happiness
  • dev.wookii
    습관처럼
    dev.wookii
  • 전체
    오늘
    어제
    • 분류 전체보기 (295)
      • Language (35)
        • python (13)
        • C++ (22)
      • Kaggle (4)
      • Algorithms (112)
        • BOJ (58)
        • programmers (43)
        • SWExpertAcademy (2)
      • Certification (38)
        • Adsp (0)
        • Sqld (28)
        • 정처기 (9)
        • 빅데이터 분석기사 (0)
      • Data Analysis & ML (6)
      • 금융 & 디지털 (65)
      • CS (32)
        • DB (2)
        • SE (3)
        • Web&JSP (1)
        • Network (11)
        • OS (2)
        • Linux&Unix (6)
        • Server (1)
        • UX,UI (1)
        • 보안 (5)
      • 기타 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    시뮬레이션
    funny algorithms
    programmers
    2020 KAKAO
    Ebay korea #coding test
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dev.wookii
python: 입출력 - 알고리즘편
상단으로

티스토리툴바