개요

코딩테스트 예제를 보며 실습해보다가 Python3로는 시간 초과가 생겨 통과하지 않지만 Pypy3로는 통과하는 것을 발견해 정리해본다.

Python

파이썬은 일반적으로 사용하는 파이썬 인터프리터로 C로 구현되어있다. 그래서 CPython이라고 부르기도 한다.
내부적으로 코드를 해석하고 실행시키는 방법은 인터프리터 방식으로 한 줄씩 해석하며 실행시킨다.
이런 특징 덕분에 라이브러리 호환성이 좋고 공식적으로 표준이다.

PyPy3

PyPy3는 파이썬을 빠르게 실행시키기 위한 대체 인터프리터다.
이전에 자바에 대한 글에서 다루었던 JIT 컴파일러를 사용하여 자주 실행되는 코드를 기계어로 바꾸어서 실행하기 때문에 속도가 빠르다.
특히나 반복문이 많거나 큰 데이터를 처리하는 데에 효과적이다.
일반적으로 계산 집약적인 작업에서 Python3보다 약 3~5배 까지도 차이가 난다.
그러나 이런 장점 때문에 일부 C 확장 모듈과 호환성 문제가 있을 수도 있다.

정리

코딩테스트에서 시간 초과가 발생하는 경우나 반복문과 연산이 많은 경우, 기본 문법과 표준 라이브러리만 사용하는 경우는 PyPy3를 사용하는 것이 효과적이고 간단한 로직이나 웹 개발등의 작업에는 Python3를 사용하는 거시 더 적합하다.