BOJ 도 다른 온라인 채점 사이트와 동작방식이 크게 다르지 않습니다.
채점 서버에는 각 문제에 대해서 수십개의 입력과 (모범)출력이 저장되어 있습니다.
"스페셜 저지"라는 딱지가 붙지 않은 문제라면 사용자가 제출한 프로그램을 컴파일 한 후에 서버에 저장되어 있는 입력을 하나씩 대입하면서 모범출력과 비교합니다. 모범출력과 다른 결과가 하나라도 있으면 틀렸습니다 를 찍는 거죠.
채점중입니다(몇%) 의 경우 지금까지 몇 개의 데이터를 대입했는지 보여주는 지표일 뿐입니다. 예를 들어서 입력 데이터 20개 중 5개를 대입해 봤다면 채점중입니다(25%) 라고 보여주는 겁니다.
"스페셜 저지"라는 딱지가 붙은 문제는 주어진 입력에 대해 출력이 올바른지를 검증하는 별도의 프로그램이 마련되어 있습니다. 입력, 모범출력, 프로그램 수행 결과 출력 을 종합적으로 검토해서 정답 여부를 판단합니다.
difmfmdi 4년 전 1
웹에서 문제푸는 사람들의 소스코드를 채점하는 신기한(?) 장치가 사이트에 되어있는것 같아요.
다른 사이트에서 코드입력과 실행결과를 대조해서 제 알고리즘을 검증받았는데
백준은 사용자가 컴파일 후 실행뒤에 제출을 해도 틀렸다고 해주니까(?)
사용자가 의아해하기도 하지 않습니까?
백준에서 채점받는 방식이 전 까다로운데 내부의 채점기준이 뭔진 모르겠는데도,
결과 데이터를 대조하는것 보다는
훨씬 수학적 증명에 가까운 것 같아! 그래봤자 머신일테지만..
제 컴파일러는 채점중입니다(__%)이렇게 알려주는곳이 여기가 유일하지 않나요?
그럼에도 불구하고 제가 어떤 기준으로 개선되어지는건질 모르겠어요
안다면 틀렸습니다 문장 많이 볼 필요도 없는데.. 아닌가용? 답변 바랍니다