강의로 돌아가기
YOYO

효율성 테스트

정확성 테스트는 다 통과 했는데 효율성 테스트라는게 어떤 테스트를 하는지 궁금하네요

def solution(participant, completion):
for i in completion:
participant.remove(i)
return participant[0]

  • 이찬호
    저도 님이랑 똑같이 풀었는데...ㅠㅠ 대체 효율성은 어떻게 체크하는지 궁금하네요 이찬호 2018.09.13 15:43
2 개의 답변
Demi

안녕하세요. 프로그래머스의 운영자 Demi 입니다.

효율성 테스트케이스는 언어별로 제한 시간이 다르게 설정되어 있습니다.
이때 제한 시간은 저희가 정한 언어별 정답 코드의 실행 시간에 일정 배수를 곱해 산출합니다.

예를 들어 Cpp 정답 코드 실행 시간이 5ms, Python 정답 코드 실행 시간이 87ms가 걸리는 테스트케이스에 대해 Cpp의 제한 시간은 15ms, Python3의 제한 시간은 435ms로 설정됩니다.

이는 이해를 돕기 위한 예시로, 배율이 꼭 3인건 아니에요 😄

한인규

효율성은 시간복잡도에 대한 테스트입니다.
list의 remove 연산자는 O(N)의 시간복잡도를 가지고 있어서 for문의 O(n)과 같이 돌면 O(n * n)으로 되어서 효율성에서 걸리실 겁니다.
파이썬의 연산자가 편한게 많지만 시간복잡도를 증대시키는 것도 있어요 :)
O(n)을 유지하면 통과 될 겁니다.

참조
https://wiki.python.org/moin/TimeComplexity
https://www.ics.uci.edu/~pattis/ICS-33/lectures/complexitypython.txt

  • YOYO
    친절하게 답변해주시고 참조까지 올려주셔서 감사합니다. 시간복잡도에 대해 공부하는데 많은 도움이 되었습니다 YOYO 2018.09.18 20:41
  • loveAlakazam
    와 감사합니다!! 진짜 도움되었습니다! loveAlakazam 2018.09.25 00:55
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.