difmfmdi   4년 전


웹에서 문제푸는 사람들의 소스코드를 채점하는 신기한(?) 장치가 사이트에 되어있는것 같아요.

다른 사이트에서 코드입력과 실행결과를 대조해서 제 알고리즘을 검증받았는데

백준은 사용자가 컴파일 후 실행뒤에 제출을 해도 틀렸다고 해주니까(?)

사용자가 의아해하기도 하지 않습니까?

백준에서 채점받는 방식이 전 까다로운데 내부의 채점기준이 뭔진 모르겠는데도,

결과 데이터를 대조하는것 보다는

훨씬 수학적 증명에 가까운 것 같아! 그래봤자 머신일테지만..

제 컴파일러는 채점중입니다(__%)이렇게 알려주는곳이 여기가 유일하지 않나요?

그럼에도 불구하고 제가 어떤 기준으로 개선되어지는건질 모르겠어요

안다면 틀렸습니다 문장 많이 볼 필요도 없는데.. 아닌가용? 답변 바랍니다

bupjae   4년 전

BOJ 도 다른 온라인 채점 사이트와 동작방식이 크게 다르지 않습니다.


채점 서버에는 각 문제에 대해서 수십개의 입력과 (모범)출력이 저장되어 있습니다. 

"스페셜 저지"라는 딱지가 붙지 않은 문제라면 사용자가 제출한 프로그램을 컴파일 한 후에 서버에 저장되어 있는 입력을 하나씩 대입하면서 모범출력과 비교합니다. 모범출력과 다른 결과가 하나라도 있으면 틀렸습니다 를 찍는 거죠.

채점중입니다(몇%) 의 경우 지금까지 몇 개의 데이터를 대입했는지 보여주는 지표일 뿐입니다. 예를 들어서 입력 데이터 20개 중 5개를 대입해 봤다면 채점중입니다(25%) 라고 보여주는 겁니다.

"스페셜 저지"라는 딱지가 붙은 문제는 주어진 입력에 대해 출력이 올바른지를 검증하는 별도의 프로그램이 마련되어 있습니다. 입력, 모범출력, 프로그램 수행 결과 출력 을 종합적으로 검토해서 정답 여부를 판단합니다.

sgchoi5   4년 전

풀이에 한이 많이 맺히신 듯 한... 느낌이네요...


백준님이 채점 사이트에 대한 초기(?) 디자인에 대한 강의 자료

http://www.slideshare.net/Baek...


채점 서버에 대한 상세 정보

https://www.acmicpc.net/help/j...


입출력 예는 정말 예제일 뿐 실제 테스트 데이터는 훨씬 다양하고 복잡한 경우를 (지문에 언급되어 있는 모든 경우의 데이터라고 보시면 될 듯..) 검사하게 됩니다.

test data in / out 이 많으니 한 번 열어보시면 참고가 될 듯 하네요.


쉬운 것부터 즐기면서 하는게 좋을 듯 합니다... : )

onjo0127   4년 전

채점방식은 제출한 코드에 미리 준비된 입력 데이터 여러 개를 대입해서 올바른 결과가 제한된 메모리와 시간 안에 나오는지를 따져 오답 여부를 가리는 걸로 알고 있습니다.

그러니까 예제 데이터를 통과한다 하더라도 크기가 큰 데이터에서 올바르지 못한 결과가 나오면 오답처리 되는 것이죠

그래서 사용자가 자신 컴퓨터에서 결과가 잘 나오는 것을 확인해도 통과하지 못하는 데이터가 있을 수 있기 때문에 오답처리가 될 수 있어요 ㅎㅎ

difmfmdi   4년 전

백준 온라인 고수님들의 따뜻한 답변에 나도 백준이 좋아 헤헤

댓글을 작성하려면 로그인해야 합니다.