자주묻는질문

컴파일러 버전 안내

C++의 경우 C++ 9.3.0 컴파일러를 사용하고 있습니다.
 컴파일 옵션 : C++ -fno-asm -Wall -lm --static -std=c++11 -DONLINE_JUDGE -o Main Main.cc

C언어는 gcc 9.3.0 컴파일러를 사용하고 있습니다.   컴파일 옵션 : gcc Main.c -o Main -fno-asm -Wall -lm --static -std=c99 -DONLINE_JUDGE, #pragma GCC optimize ("O2")

채점 시 확인할 수 있는 내용

이 프로그램은 프로그램 코드를 제출하면 즉시 채점을 하고 코드 별 결과를 보여줍니다. 결과로 나올 수 있는 내용은 아래와 같습니다.

  • 채점대기중:코드가 제출되고 채점을 기다리고 있는 상태입니다. 대부분의 경우 조금만 기다리면 채점이 진행됩니다.
  • 채점중:채점이 진행되고 있는 상태라는 의미입니다.
  • 컴파일오류:제출한 소스코드를 ANSI 표준(gcc/g++/gpc) 컴파일러로 컴파일하지 못했다는 것을 의미합니다.
            컴파일 오류 메시지가 아닌 오류 경고(warning)는 이 메시지를 출력하지 않습니다.
            메시지 부분을 누르면 컴파일 위치를 확인할 수도 있습니다.
  • 모두 맞음:모든 채점 데이터에 대해서 정확한 답을 출력했다는 의미입니다.
  • 출력형식 다름:출력된 결과가 문제에서 출력해야하는 출력형식과 다르게 출력되었다는 의미입니다. 문제의 출력형식에서 요구하는 형식과 똑같아야 합니다.          답 출력 후 출력형식에는 없는 공백문자나 줄 바꿈이 더 출력되지는 않았는지 확인해 보아야 합니다.
  • 틀림:틀린 답을 출력한 것을 의미합니다. 채점 시스템에 등록하는 채점 데이터들은 외부로 공개하지 않는 것이 일반적입니다.
         제출한 코드가 틀린 답을 출력하는 경우가 어떤 경우일지 더 생각해 보아야 합니다.
  • 시간제한 초과 : 제한시간 이내에 답을 출력하지 못했다는 것을 의미합니다.   좀 더 빠르면서도 정확한 결과를 출력하도록 소스 코드를 수정해야합니다.
  • 메모리제한 초과 : 제출한 프로그램이 제한된 메모리용량보다 더 많은 기억공간을 사용했다는 것을 의미합니다. 메모리를 더 적게 사용하는 코드로 수정해야합니다.
  • 실행중 에러 : 제출한 프로그램이 실행되는 도중에 오류가 발생했다는 것을 의미합니다. 예를 들어, 'segmentation fault(허용되지 않는 메모리 영역에 접근하는 경우: 배열 인덱스 초과 등)','floating point exception(실수 계산 예외: 0 으로 나누는 등)','used forbidden functions(제한된 함수를 사용한 경우: 파일 처리 함수 등이 사용된 경우 등)', 'tried to access forbidden memories(허용되지 않는 시스템 메모리 영역 등에 접근하는 경우 등)' 등에 의해 발생합니다.

  • 입력과 출력

    Q:코드 작성시 데이터 입출력은 어떻게 하나요?

    A:stdin('표준입력')에서 읽고, stdout('표준출력')으로 출력해야합니다. 예를 들어, C언어에서는 'scanf', C++ 언어에서는 'cin' 을 이용해서 stdin(입력)을 읽어들입니다.
    또한, C언어에서는 'printf', C++언어에서는 'cout'을 이용해 stdout(출력)으로 출력할 수 있습니다.
    파일 입출력을 사용한 코드를 제출하는 경우에는 "Runtime Error(실행 중 에러)" 메시지를 받게 됩니다.

    입출력 예시

    아래 코드는 각 언어 별로 두 개의 값을 입력받아 합을 입력받아 출력하는 코드 예시입니다.

    gcc(.c)

    #include <stdio.h>
    int main(){
        int a, b;
        while(scanf("%d %d",&a, &b) != EOF){
            printf("%d\n", a + b);
        }
        return 0;
    }

    C++ (.cpp)

    #include <iostream>
    using namespace std;
    int main(){
        int a, b;
        while (cin >> a >> b){
            cout << a+b << endl;
        }
        return 0;
    }

    python3 (.py)

    import io
    import sys
    sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')
    for line in sys.stdin:
        a = line.split()
        print(int(a[0]) + int(a[1]))