WA를 볼 수는 없을가요?

  • sangchu
    sangchu

    wrong answer가 나오면 어떤 입력값에서 어떤 값이 나왔는지 알수 있게끔 할 수 없나요?
    뭐가 잘못되었는지 알아야 수정을 할텐데 그걸 모르니 참 답답하네요.

    [이 글은 과거 홈페이지에서 이전된 글입니다. 원문보기]

    15년 전
2개의 댓글이 있습니다.
  • Being
    Being

    일단 JM님이 자세히 설명하시겠지만 제가 아는 대로 대답하겠습니다.
    기술적인 면에서, "어떤 입력"이 문제가 생겼는지 알기 위해서는 입력을 이해하는 코드를 따로 만들어서 같이 등록할 필요가 있습니다. 문제마다 입력 형식이 항상 일률적이진 않기 때문이죠. 그렇다면 전체 입/출력을 사용자에게 보여줘야 하는데 그건 문제를 푸는 의도, 즉 실력 향상에는 별로 도움이 되지 않을 것 같습니다. 또 문제의 데이터를 빼돌려서 다른 용도로 사용할 수 있는 등 문제가 생길 여지도 있구요. 무엇보다 실제 대회에선 절대로 무엇이 문제인지 알려주지 않죠.
    어디가 어떻게 틀렸는 지 잘 알아내는 것 역시 당연히 참가자의 실력과 강력한 관계가 있습니다. 코드를 다시금 찬찬히 읽어보신다거나, 작은 데이터를 임의로 생성해서 테스트를 해 보세요. 대부분의 경우 로직의 오류는 충분히 사람이 쫓을 수 있는 작은 데이터로도 검출됩니다. 큰 데이터에서 답을 정상적으로 구하지 못한다면 그것은 TLE, MLE, 오버플로, 배열의 인덱스 초과 등의 비교적 trivial한 문제일 가능성이 높습니다. 이 점을 고려해서 한 번 답을 찾아 보시기 바랍니다. : )


    15년 전 link
  • JongMan
    JongMan

    오우 역시 빙, 매우 정확합니다 >< 일단 입력을 보여드리는건 지금 구조에서 좀 어려워요. ^^; 그걸 하려면 이제 각 테스트 입력을 별도의 파일로 분해하는게 필요한데.. 구조를 전부 뒤집어 엎어야 하는 일이라서요.
    하지만, 애초에 그와 같은 구조를 채택한 이유가, 채점 데이터를 제공하는 것이 채점 사이트에 별로 바람직한 일이 아니라는 결론 때문이에요. 물론, 일부, 채점 데이터에 문제가 있어서 데이터를 제공해서 문제가 해결되는 일이 있습니다. 하지만, 빙이 말한 대로 실제 대회에서는 데이터를 제공하지 않죠. :) 또한, 데이터로 직접 돌려보면서 어디가 틀렸나를 찾아보는 방법은 디버깅 방법 중에서도 가장 열악한 것이라고 생각해요.. 대회에서는 가능한한 디버거를 쓰는 것이 아니라 눈과 논리로 디버깅을 하는 것이 좋습니다.. ^^;
    지금은 답답하시겠지만, 그것이 실제로 배우는 데 가장 도움되는 방법이라고 생각합니다. 정 어려우시면 게시판에 질문을~ ^^;
    그리고, AOJ 대부분의 데이터들은 랜덤으로 만든 커다란 데이터들이라 이것을 손으로 디버깅하기란 애초에 거의 불가능해요...


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