채점 정보

시간 초과

실행시간이 6초를 넘어가면 프로세스가 종료되고 '시간 초과'로 처리합니다.

(현재로서 6초라는 기준은 별다른 이유 없이, 넉넉한 시간으로 설정하였습니다.)

출력 초과

export const MAX_BUFFER_SIZE = 1024 * 10;

export const MAX_LINE_LENGTH = 200;

표준 출력의 최대 크기는 10kb, 최대 라인 수는 200으로 설정하였습니다.

(디버깅하기에 충분하다고 생각되는 크기로 설정하였습니다.)

정답 체크 방식

1

표준 출력 데이터의 컬러코드 제거

string 타입이 아닌, number 타입의 값을 표준 출력 할 경우 색상 관련 코드(ANSI color code)가 함께 출력되어 이를 제거합니다.

export const removeAnsiText = (text: string) => {
    return text.replace(/\x1B\[[0-?]*[ -/]*[@-~]/g, '');
}
2

각 출력을 정규화 한 후 비교

문자열 전체 혹은 각 라인의 앞뒤로 공백이 존재할 수 있습니다.

export function normalizeOutput(output: string) {
  return output
    .trim()
    .split('\n')
    .map((line: string) => line.trim())
    .join('\n');
}

프로그램 표준 출력, 백준의 예제 출력을 모두 동일한 방식으로 공백을 제거한 후 비교합니다.

Last updated