인프런 커뮤니티 질문&답변

김은지님의 프로필 이미지
김은지

작성한 질문수

입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]

도전 과제 (BOJ 사이트 문제)

백준 사용 시 채점 언어

작성

·

66

0

백준에서 정답코드를 그대로 붙여넣었는데도 불구하고 시간초과가 나서, 채점언어를 python3에서 pypy3로 바꿨더니 정답이 되었습니다.. 혹시 왜 그럴까요? 그리고 어떤 점이 다른가요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

Python3와 PyPy3 사이에 성능 차이가 발생하는 이유는 두 언어의 실행 방식 차이 때문입니다. Python3는 인터프리터 언어로 코드를 한 줄 한 줄 실행합니다. 이로 인해 복잡한 계산이나 반복문이 많은 프로그램에서는 실행 시간이 길어질 수 있습니다.

반면, PyPy3는 Just-In-Time(JIT) 컴파일러를 사용합니다. JIT 컴파일러는 프로그램을 실행하는 도중에 실시간으로 더 나은 기계어 코드로 최적화하여 실행 속도를 향상시키는 역할을 합니다. 따라서 PyPy3는 Python3보다 반복문이 많거나 계산이 복잡한 프로그램에서 더 빠르게 실행될 가능성이 큽니다.

이 때문에 백준과 같은 온라인 코딩 테스트 플랫폼에서 Python3로 시간 초과가 나오는 코드가 PyPy3로 바꾸었을 때 정답 처리될 수 있는 것입니다. PyPy3는 동일한 코드라도 내부적으로 최적화를 수행하기 때문에 속도가 빨라집니다.

하지만 모든 경우에 PyPy3가 Python3보다 빠른 것은 아니므로, 프로그램의 특성과 요구 사항에 맞게 적절한 언어를 선택하는 것이 중요합니다.

김은지님의 프로필 이미지
김은지

작성한 질문수

질문하기