참고

채점 방식

제출한 코드를 어떻게 실행하고 채점하는지 정리했어요.

테스트 케이스

문제마다 여러 개의 테스트 케이스가 있고, 제출한 코드는 테스트 케이스마다 한 번씩 실행돼요.

테스트 케이스는 순서대로 채점해요. 어떤 테스트 케이스에서 틀리면 그 뒤의 테스트 케이스는 채점하지 않고 "채점 중단됨"으로 표시돼요.

모든 테스트 케이스를 통과해야 "맞았습니다"가 되고, 그렇지 않으면 처음으로 실패한 테스트 케이스의 결과가 최종 결과가 돼요.

출력 비교

프로그램의 출력은 정답 파일과 한 줄씩 비교해요. 각 줄은 공백으로 나눈 단어 단위로 비교하기 때문에, 단어 사이의 공백 개수나 줄 끝의 공백은 결과에 영향을 주지 않아요.

출력 끝에 붙은 빈 줄도 무시해요. 하지만 줄바꿈 위치는 정답과 같아야 해요. 한 줄에 출력해야 하는 값을 여러 줄에 나눠 출력하면 틀려요.

출력이 정답보다 지나치게 길면(정답 크기의 1.5배 + 100바이트 초과) 비교하지 않고 "틀렸습니다"로 처리해요.

답이 여러 개일 수 있는 문제는 스페셜 저지로 채점해요. 이때는 출력이 조건을 만족하는지 별도 프로그램으로 확인해요.

부분 점수

결과가 "틀렸습니다"일 때, 처음으로 틀린 테스트 케이스 앞까지 통과한 테스트 케이스의 비율이 부분 점수로 표시돼요. 예를 들어 10개 중 4개를 통과한 뒤 틀렸다면 "부분 점수(40%)"로 표시돼요.

시간 초과, 메모리 초과, 런타임 에러, 컴파일 에러에는 부분 점수가 없어요.

부분 점수를 받아도 맞은 문제로 인정되지는 않아요.

실행 시간

실행 시간은 프로그램이 실제로 CPU를 사용한 시간(사용자 시간 + 시스템 시간)이에요. 프로그램을 준비하거나 컴파일하는 시간은 포함되지 않아요.

테스트 케이스마다 따로 측정하고, 어느 하나라도 시간 제한을 넘으면 "시간 초과"가 돼요. 채점 결과 화면의 최대 실행 시간은 가장 오래 걸린 테스트 케이스의 시간이에요.

메모리

메모리는 프로그램이 차지하는 전체 메모리 크기로 측정해요. 실제로 값을 쓰지 않았더라도 선언한 배열의 크기는 모두 포함돼요.

테스트 케이스마다 따로 측정하고, 어느 하나라도 메모리 제한을 넘으면 "메모리 초과"가 돼요.

일부 언어는 메모리 제한이 다르게 적용돼요. 자세한 내용은 채점 및 실행 환경에서 확인하세요.

채점 및 실행 환경

소스 코드 길이

소스 코드는 100,000자까지 채점할 수 있어요.

채점 대기

제출한 코드는 순서대로 채점 서버에서 채점해요. 제출이 몰리면 채점을 시작하기까지 시간이 걸릴 수 있어요.

문제 제출 화면에서 예상 채점 대기시간과 채점 대기 중인 제출 수를 확인할 수 있어요.

더 알아보기