파이썬 프로그래밍 대회 질문

조회수 1512회

이번에 프로그래밍 대회에 출전할려고 준비를 하고 있는데, 미리 테스트를 해 볼수 있는 사이트가 있어서 한번 테스트를 했습니다

정확성에선 만점을 받았지만 효율성에선 점수를 하나도 받지 못했습니다

정말 쓸때없는 반복문을 줄여서 코드를 적었지만 효율성 점수를 못받았습니다

혹시 파이썬에서 실행시간을 단축 시킬 수 있는 방법이 있나요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 언어마다 수행시간 제한이 다르다고 알고 있는데요? 만약 모든 언어의 성능을 절대적인 비교를 하겠다면 파이썬으로 아무리 효율적으로 작성해도 대충 작성한 C의 수행성능을 이길수가 없습니다.

    즉 절대적인 성능만으로 비교한다면 현재 많이 사용하는 언어중 파이썬은 꼴찌 수준입니다.

    성능 즉 cpu 연산이 많은 작업이라면 파이썬만으론 한계가 분명 존재합니다.

    반대로 가장 빠른 언어는 어셈블리와 c언어입니다.

    파이썬에서 성능의 한계를 극복하는 방법은 크게 2가지 형태가 있습니다.

    첫번째는 JIT 컴파일러를 사용하는 것이며 두번째는 c나 어셈블리등으로 만든 모듈을 파이썬에서 사용하는 방법입니다.

    첫번째 같은 경우는 대표적으로 pypy, pystone 등이 있습니다.

    두번째 같은 경우는 기본 내장 모듈인 ctypes 을 이용해서 so, dll 파일을 호출할 수 있으며 cython 을 사용하며 확장모듈을 바로 만들어낼 수 있습니다.

    그런데 그 테스트 사이트에서는 위의 두가지 방법을 사용할 순 없을 겁니다.

    해당 테스트 사이트에 pypy 같은 JIT 컴파일러가 설치되어있을 가능성이 낮으며 확장모듈은 해당 장비로 옮겨야하는데 그것이 지원될리가 없겠죠.

    • 그 테스트 사이트에선 각 언어마다 수행시간 차이가 있어 각 언어마다 수행시간 제한이 다르다고 하는데 그럼 제가 코드를 못짠거겠죠? 알 수 없는 사용자 2018.4.10 08:14
    • 결론적으로 그렇다고 할 수 있습니다. 보통 알고리즘 훈련용 사이트로 알고 있습니다. 정영훈 2018.4.10 11:12

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)