백준 문제 풀때, python3과 pypy3의 차이
Programming Language/Python

백준 문제 풀때, python3과 pypy3의 차이

728x90

처음에는 pypy라는 다른 언어가 있는 줄 알았다.

(워낙 언어가 다양하다 보니..)

 

그런데 2805 번 문제를 풀다보니 계속 시간 초과가 났다.

그래서 뭐가 잘못 됐는지 구글링을 해봤는데,

블로그에 올라온 코드들은 모두 맞았습니다!! 를 받은 코드들일텐데, 변수 이름 빼고는 거의 똑같았다.

 

어느 한 블로그에서 pypy3으로 제출을 했다길래, 나도 pypy3으로 돌려봤는데 맞았습니다!! 가 떴다.

 

그래서 python과 pypy의 차이에 대해 검색해보았고,

728x90

이 블로그에 의하면,

PyPy는 JIT컴파일을 도입하며 CPython보다 빠르다는 것이다.

PyPy에는 자주 쓰이는 코드를 캐싱하는 기능이 있기 때문에, 메모리를 조금 더 사용하여 실행속도를 개선하였고 반복문을 많이 사용하는 코드에서는 PyPy가 속도 측에서 우세하다고 한다.

(간단한 코드 상에서는 Python3가 메모리, 속도 측에서 우세할 수 있다.)

그래서 코드 상황에 맞추어 Python, PyPy를 적절하게 사용하는 것이 효율적이라고 한다.

 

2805 번도 이분 탐색으로 while문으로 돌아가는 코드라 PyPy3에서 속도가 빨랐나보다.

728x90