자주하시는 질문

본문 바로가기


자주하는질문(FAQ)

커뮤니티

정올소식
자유게시판
질문게시판
자주하는질문(FAQ)

자주하시는 질문 목록

  1. 채점을 위해 사용되는 컴파일러와 각 컴파일러의 옵션은 어떤것입니까?

    채점 시스템은 Ubuntu Linux 14.10에서 구동됩니다. 현재 C/C++ 코드 컴파일을 위해 GNU GCC/G++를 사용하고 있으며, Java 코드 컴파일을 위해 sun-java-jdk1.8를, python 코드 컴파일을 위해 python 2.7.8을 사용합니다. 컴파일을 위해서 다음과 같은 옵션을 사용합니다:

     

    C : gcc Main.c -o Main -ansi -fno-asm -O2 -Wall -lm --static
    C++ : g++ Main.c -o Main -ansi -fno-asm -O2 -Wall -lm --static
    Java : javac Main.java
    Python : python Main.py


    각 컴파일러의 버전:

    gcc/g++ : gcc/g++ (Ubuntu/Linaro 4.9.1-16ubuntu6) 4.9.1
    glibc : glibc 2.19
    Java : Java 1.8.0_25, Javac 1.7.0_80
    Ptyhon : Python 2.7.8 

  2. 입력과 출력은 어떻게 받나요?

    채점을 위해서 입력은 stdin('Standard Input')을 통해 받게 되며, stdout('Standard Output')에 출력하게 됩니다.

    자세하게 이야기 하자면, 입력을 위해서는 'scanf(C)/cin(C++)'을, 출력을 위해서 'printf(C)/cout(C++)' 을 사용하게 됩니다
    사용자가 작성한 프로그램은 파일을 읽고 쓰는 것이 금지 되어 있으며, 이러한 경우, "Runtime Error" 를 받게 됩니다.

     

    아래의 코드들은 Code 1000번의 예제 입니다.

     

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


     * C++ 예시코드:
    #include <iostream>
    using namespace std;
    int main(){
        int a,b;
        while(cin >> a >> b)
            cout << a+b << endl;
     return 0;
    }


     * Java 예시코드:
    import java.util.*;
    public class Main{
       public static void main(String args[]){
           Scanner cin = new Scanner(System.in);
           int a, b;
           while (cin.hasNext()){
               a = cin.nextInt(), b = cin.nextInt();
               System.out.println(a + b);
          }
       }
    }


     * Python 예시코드:

    -*- coding: utf8 -*-
    a = input()
    print a

  3. 제가 테스트 해보았을 떄는 잘 돌아가는데 결과로 Compile Error가 뜹니다. 왜그럴까요?

    일반적으로 MS-VC++를 사용하였을 경우에 발생하며, GNUMS-VC++에서 생기는 차이점에 의하여 발생합니다.

    예를 들면 다음과 같습니다:

    • G++에선 main이 반드시 int형으로 선​언되어야 하며, void main을 사용하게 되면 Compile Error를 받게 됩니다..
    • for(int i=0...){...}"와 같이 for문 안에 int변수를 선언하였을 경우 block을 벗어났을 때 i 변수는 사라지게 됩니다.
    • itoa ANSI 에서 규정한 표준 함수가 아닙니다.
    • VC에서의 __int64ANSI 표준이 아닙니다. 하지만 64비트 integer 변수를 사용하기 위해 long long을 사용할 수 있습니다.
    • JAVA의 경우 class의 이름은 Main 으로 해주세요. " public class Main {...}"
  4. 채점 결과의 뜻은 무엇인가요?

    채점결과들의 의미는 다음과 같습니다:

    • Pending : 채점이 밀려서 아직 채점이 완료 되지 않은 대기 상태. 일반적으로 1분 이내에 채점이 됩니다.
    • Pending Rejudge: 테스트 데이터를 새로이 고치거나 했을 경우, 해당 제출 코드를 다시 채점하게 되어 대기 상태로 들어가는 경우.
    • Compiling : 채점을 하기 위해 컴파일 하는 중에 나타납니다.
    • Running & Judging: 채점이 진행되고 있음을 의미합니다.
    • Success : 제출한 프로그램이 모든 테스트 데이터를 통과했음을 뜻합니다.
    • Accepted : 제출한 프로그램이 테스트 데이터를 부분적으로 통과했음을 뜻합니다.
    • Presentation Error : 출력 결과가 테스트 데이터와 유사하나, 공백, 빈 줄과 같은 사소한 문제로 인해 출력 결과가 일치하지 않는 경우입니다.
    • Wrong Answer : 출력 결과가 테스트 데이터와 다른 경우 입니다.
    • Time Limit Exceeded : 제출한 프로그램이 제한된 시간이내에 끝나지 않은 경우를 뜻합니다.
    • Memory Limit Exceeded : 제출한 프로그램이 허용된 메모리보다 많은 메모리를 사용했을 경우를 뜻합니다.
    • Output Limit Exceeded : 예상하는 보다 많은 출력이 발생한 경우 입니다. 일반적으로 프로그램이 무한 루프에 빠졌을 경우에 일어납니다. 현재 채점 시스템에서 출력 제한은 1메가 바이트로 제한됩니다.
    • Runtime Error : 실행 도중에 'segmentation fault','floating point exception','used forbidden functions', 'tried to access forbidden memories' 등의 에러가 발생하여서 실행도중에 프로그램이 종료된 경우 입니다.
    • Compile Error : 컴파일러가 제출한 소스코드를 컴파일 하지 못한 경우입니다. 물론 경고 메시지(warning message)는 에러 메시지로 간주하지 않습니다. 채점 결과를 클릭하면 실제 에러 메시지를 볼 수 있습니다.
FAQ 검색

HancomEducation E-mail : hancomc@hotmail.com, comkiwer@naver.com Tel : 070-7163-5782 FAX : 031-388-0996 정올소개 이용약관 개인정보처리방침
경기도 안양시 동안구 호계동 1065-10 협성골드프라자 601호, 경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호
Copyright@2010-2015 jungol. All right reserved.