테스트 케이스에 관하여 질문 드립니다.

  • Ersia
    Ersia

    안녕하세요. 공부중인 초보입니다.

    폴리오미노 문제를 풀려고 살펴보면서 문제를 잘 이해하지 못해 질문올립니다.

    해당 문제의

    n개의 정사각형으로 구성된 세로 단조 폴리오미노의 개수를 세는 프로그램을 작성하세요.

    라는 요지는 파악했습니다.

    다만 예시의 테스트 케이스 관련 문장을 이해하지 못하고 있습니다.
    문제에서 요구하는 테스트 케이스의 수 C (1≤C≤50)가 주어지고
    문제의 n과 결과물을 출력하는 것인데,

    튜토리얼이나 사이트 내의 게시물을 검색해보니 테스트케이스의 숫자만큼 해당 알고리즘을 반복하는 경우가 전부였습니다.

    그렇다면 알고리즘 문제에서 테스트케이스의 수 C의 의미는

    • 최대 50회의 테스트케이스를 실행해서 문제의 제한을 허용하는가

    를 의미하는 건지요?

    아니면

    • C회 반복시행했을 때 같은 입력값에 같은 출력이 발생하는가

    인가요?

    아니면 또 다른 의미가 있는건지..

    테스트케이스에 1~50이라는 범위가 정해진것도 이해가 가지 않습니다. 무언가 의미가 있는건지요?

    이런 온라인으로의 문제풀이는 익숙하지 않아 도움이 필요합니다.
    답변 부탁드려요.


    3년 전
3개의 댓글이 있습니다.
  • wookayin
    wookayin

    최대 50회의 테스트케이스를 실행하여 모두 올바른 답을 내놓아야겠죠. 프로그램이 올바른지를 검사하기 위해 서로 다른 입력 (이 문제에서는 n)을 넣어보는 것이고, 하나의 테스트 케이스에 하나의 입력이 주어지는거라고 생각하시면 됩니다.

    따라서 후자의 반복시행 등은 아니구요. 테스트케이스가 50개 이하라는건 특별한 의미는 없고요 (이 문제에서는 100개여도 상관은 없겠죠), 시간제한 등을 고려하여 현실적인 범위에서 정하곤 합니다.


    3년 전 link
  • Being
    Being

    wookayin님이 잘 설명해주셨고요, 그래서 테스트 케이스의 수를 특별히 언급하지 않는 문제도 알고스팟 온라인 저지 내에서 찾아보시면 꽤 많습니다.

    기록을 위해 남기자면 한 번의 입력에 여러 개의 테스트 케이스를 넣는 데에는 (역사적인) 이유들이 있는데요:

    1. 많은 대회에서 어차피 답이 완전히 맞아야만 정답이고 하나라도 틀리면 오답이니 하나의 입력 파일에 전부 넣으면 채점하기 편함 (이건 사람이 수동으로 채점하는 경우에는 더더욱 그렇습니다)
    2. C/C++(~03) 같은 메모리 관리가 중요한 언어에서는 프로세스가 죽지 않고 여러 번 입력을 처리하게끔 하면 버그가 발생하기 쉽기 때문에 그 부분을 테스트하기 위함

    정도가 생각이 나네요.


    3년 전 link
  • Ersia
    Ersia

    두 분 모두 깔끔한 설명 고맙습니다. 큰 도움이 되었습니다.


    3년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.